Stored Procedures (SQL Server)
Hola, tengo un problema que no se si tiene una soluci贸n simple pero espero que s铆 y que alguien me pueda ayudar. El problema es que tengo un stored procedure con una consulta de SELECT y necesito pasarle como par谩metro toda la condici贸n (que la tengo como un string en una variable de mi sistema) para aplicar filtros sobre los datos.
Ejemplo:
CREATE Procedure viewClientes
@Condicion varchar(200)
AS
SELECT * FROM CLIENTES
WHERE @Condicion
Return
Donde a @Condicion le voy a pasar como valor un string como los siguientes:
- Edad > 20
- Nombre LIKE 'Car%" AND Sexo = 'Femenino'
- FechaIngreso BETWEEN #1/1/2004# AND #31/12/2004#
O cualquier condici贸n que al usuario se le ocurra
No s茅 si se entiende lo que quiero hacer, pero el sql no lo entiende, me da un error al poner "WHERE @Condicion". Hay alguna forma de hacerlo?
Muchas gracias.
Javier
Ejemplo:
CREATE Procedure viewClientes
@Condicion varchar(200)
AS
SELECT * FROM CLIENTES
WHERE @Condicion
Return
Donde a @Condicion le voy a pasar como valor un string como los siguientes:
- Edad > 20
- Nombre LIKE 'Car%" AND Sexo = 'Femenino'
- FechaIngreso BETWEEN #1/1/2004# AND #31/12/2004#
O cualquier condici贸n que al usuario se le ocurra
No s茅 si se entiende lo que quiero hacer, pero el sql no lo entiende, me da un error al poner "WHERE @Condicion". Hay alguna forma de hacerlo?
Muchas gracias.
Javier
ola javier, tengo que hacer un trabajo sobre el sql de sql server 2000.
he llegado a los procedimientos almacenados, pero resulta que en comparacion con el sql de interbase, encuentro muchas diferencias.
por ejemplo,
1.- como recibir un parametro de entrada en un procedimiento almacenado.
2.- como almacenar el resultado de un select en una variable.
te agradeceria muxo que me ayudases, javier.
gracias
he llegado a los procedimientos almacenados, pero resulta que en comparacion con el sql de interbase, encuentro muchas diferencias.
por ejemplo,
1.- como recibir un parametro de entrada en un procedimiento almacenado.
2.- como almacenar el resultado de un select en una variable.
te agradeceria muxo que me ayudases, javier.
gracias
1.- como recibir un parametro de entrada en un procedimiento almacenado.
CREATE PROCEDURE pr_Myprocedimiento
(@MyVariableARecibir1 INT,
@MyvariableARecibir2 VARCHAR(100))
AS
-----------------Cuerpo del store
2.- como almacenar el resultado de un select en una variable.
Solo si es UNA SOLA COLUMNA:
Declare @MyClienteNombre VARCHAR(40)
SELECT @MyClienteNombre = ClienteNombre+' '+ClienteApellido FROM Cliente WHERE ClienteID = 20
PRINT @MyClienteNombre
CREATE PROCEDURE pr_Myprocedimiento
(@MyVariableARecibir1 INT,
@MyvariableARecibir2 VARCHAR(100))
AS
-----------------Cuerpo del store
2.- como almacenar el resultado de un select en una variable.
Solo si es UNA SOLA COLUMNA:
Declare @MyClienteNombre VARCHAR(40)
SELECT @MyClienteNombre = ClienteNombre+' '+ClienteApellido FROM Cliente WHERE ClienteID = 20
PRINT @MyClienteNombre
Voy a postear solo la parte de la ejecucion:
SET NOCOUNT ON
DECLARE @SQLString NVARCHAR(100) -- Depende de la condicion
SET @SQLString = N'SELECT * FROM CLIENTES WHERE '+@CONDICION
EXECUTE sp_executesql @SQLString
La variable @CONDICION, deberia traer los AND, OR, BETWEEN etc.
Te recomiendo que utilices el formato de fecha ANSI: YYYYMMDD
Saludos
SET NOCOUNT ON
DECLARE @SQLString NVARCHAR(100) -- Depende de la condicion
SET @SQLString = N'SELECT * FROM CLIENTES WHERE '+@CONDICION
EXECUTE sp_executesql @SQLString
La variable @CONDICION, deberia traer los AND, OR, BETWEEN etc.
Te recomiendo que utilices el formato de fecha ANSI: YYYYMMDD
Saludos
