Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

crear un SP para pasarle TODA la sentencia por parametros.

Estas en el tema de crear un SP para pasarle TODA la sentencia por parametros. en el foro de SQL Server en Foros del Web. Amigos, lo que requiero es crear un procedimiento almacenado que sirva para cualquier propósito. es decir, que le pueda pasar la sentencia completa por parametros. ...
  #1 (permalink)  
Antiguo 29/12/2011, 08:46
 
Fecha de Ingreso: diciembre-2011
Ubicación: Bogotá
Mensajes: 5
Antigüedad: 12 años, 3 meses
Puntos: 0
crear un SP para pasarle TODA la sentencia por parametros.

Amigos, lo que requiero es crear un procedimiento almacenado que sirva para cualquier propósito. es decir, que le pueda pasar la sentencia completa por parametros.
se vería como esto:
exec sp_proposito_general('select * from clientes') y debería arrojar el listado de clientes.

Pero el mismo SP me podría servir para esto:
exec sp_proposito_general('update facturas set fecha=1/1/2012 where factura_id=12345'), lo que modificaría la fecha de una factura.

Estuve tratando pero los errores de sintaxis no me dejan continuar.
Dije entonces: bueno, haré uno para los SELECT, otro para os UPDATE etc.

Y ESCRIBÍ ESTO:

CREATE PROCEDURE [dbo].[app_multiproposito]
@accion varchar(20) ,
@sql varchar(255)
AS
BEGIN
SET NOCOUNT ON;

if @accion='Select'
select @sql

pero cuando ejecuto el SP no me arroja ningun dato.
  #2 (permalink)  
Antiguo 29/12/2011, 10:03
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: crear un SP para pasarle TODA la sentencia por parametros.

No tiene logica tu planteamiento, si vas a hacer un UDPATE, pues hazlo dentro del cuerpo del store procedure, ¿no crees?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 29/12/2011, 13:09
 
Fecha de Ingreso: diciembre-2011
Ubicación: Bogotá
Mensajes: 5
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: crear un SP para pasarle TODA la sentencia por parametros.

Hola Isaías.
Gracias por tu respuesta.

Tengo mis razones para hacer esta pregunta.
Y te aseguro que tiene una lógica muy lógica.
Si tú lo deseas te la puedo explicar.

Saludos
Farley
  #4 (permalink)  
Antiguo 29/12/2011, 14:06
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: crear un SP para pasarle TODA la sentencia por parametros.

y si haces esto:

CREATE PROCEDURE [dbo].[app_multiproposito]
@query varchar(max)
AS
BEGIN
SET NOCOUNT ON;
exec Sp_sqlExec @query
end


Y asi te ejecuta lo que le mandes

Saludos!!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 30/12/2011, 09:53
 
Fecha de Ingreso: diciembre-2011
Ubicación: Bogotá
Mensajes: 5
Antigüedad: 12 años, 3 meses
Puntos: 0
De acuerdo Respuesta: crear un SP para pasarle TODA la sentencia por parametros.

Libardo, Buenos días.
Muchísimas gracias por tu respuesta.
Funcionó Perfecto!!!

Esto es el poder de lo simple !!!

Un abrazo desde Bogotá, Colombia.

Salu2
Farley.
  #6 (permalink)  
Antiguo 30/12/2011, 09:55
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: crear un SP para pasarle TODA la sentencia por parametros.

Cita:
Iniciado por farbot Ver Mensaje
Libardo, Buenos días.
Muchísimas gracias por tu respuesta.
Funcionó Perfecto!!!

Esto es el poder de lo simple !!!

Un abrazo desde Bogotá, Colombia.

Salu2
Farley.
Amiga, Libardo jejejeje con un simple gracias libras esta mas que suficiente :) y que bien que la ayuda soluciono tu problema :)

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 02/01/2012, 08:28
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: crear un SP para pasarle TODA la sentencia por parametros.

solo como comentario,

ojala que tengas bien validada la entrada del comando que se envia en el parametro del SP.. por motivos de seguridad..

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #8 (permalink)  
Antiguo 02/01/2012, 10:24
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: crear un SP para pasarle TODA la sentencia por parametros.

De acuerdo con Andres95, no le veo logica a la forma del comportamiento de tu procecdimiento, y si es cierto que con lo propuesto por Libras, sigo sin verle logica alguna.
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 04/01/2012, 17:39
 
Fecha de Ingreso: diciembre-2011
Ubicación: Bogotá
Mensajes: 5
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: crear un SP para pasarle TODA la sentencia por parametros.

Gracias por sus inquietudes a las que les hallo razón.
Básicamente ahora lo que tengo es la posibilidad de correr cualquier sentencia sin necesidad de tener la consola instalada. solo requiero la conexion y esto lo puedo llamar incluso desde un pinche excel . Se que es nada ortodoxo pero era esa exactamente mi necesidad.
y en aras de la cibernética, el sistema está al servicio de la humanidad y no al revés.
De nuevo mil gracias a todos y reciban un enorme abrazo desde Bogotá Colombia.
  #10 (permalink)  
Antiguo 05/01/2012, 11:55
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: crear un SP para pasarle TODA la sentencia por parametros.

Puedes ejecutar CUALQUIER instruccion T-SQL, incluso, desde el comando de OS, siempre y cuando tengas la autorizacion para hacerlo.
__________________
MCTS Isaias Islas
  #11 (permalink)  
Antiguo 05/01/2012, 22:39
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Respuesta: crear un SP para pasarle TODA la sentencia por parametros.

Cita:
..y en aras de la cibernética, el sistema está al servicio de la humanidad y no al revés.
Debo decir que soy un fiel creyente de esta afirmación, muchas veces hice uso de las tecnologías priorizando mi comodidad sobre las prácticas recomendadas, pero en este caso (y disculpas por insistir en el tema) estoy de acuerdo con iislas, no le veo sentido al procedimiento.

1. Cualquier forma que permita ejecutar un procedimiento (cmd, excel, etc), también permite ejecutar una consulta SQL, de hecho, la conexión a la base no hace diferencia entre una cosa y otra.

2. Complejidad de código, es decir, más trabajo para escribir las sentencias y más dificultad para leerlas.

Código:
--aquí tienes que codificar la sentencia SQL,
--la llamada al procedimiento y
--las comillas simples adicionales para los valores varchar y date
exec sp_sql 'update facturas set fecha=1/1/2012 where factura_id=12345'
go

--aquí solo tienes que codificar la sentencia SQL
update facturas set fecha=1/1/2012 where factura_id=12345
go
En fin, lo importante es que el problema está resuelto, solo comentaba por curiosidad.

Saludos

Etiquetas: fecha, select, sentencia, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:21.