Hola!
pues os voy a mostrar una manera sencilla de crear en T-SQL un procedimiento que realice una consulta de forma dinámica. ¿Para qué lo puedo utilizar? Pues por ejemplo, imagínate que tienes un formulario web con 3 campos para filtrar y que el formulario te permite filtrar por ninguno, uno, dos o los tres campos. En el caso que no queramos buscar por uno de los campos, le daremos valor -1.
Aquí os dejo el ejemplo del procedure:
CREATE PROCEDURE [dbo].[CONSULTA_FORMULARIO]
@ID1 INT,
@ID2 INT,
@ID3 INT
AS
BEGIN
DECLARE @SQL NVARCHAR(1000)
DECLARE @nID1 NVARCHAR(100)
DECLARE @nID2 NVARCHAR(100)
DECLARE @nID2 NVARCHAR(100)
SET @nID1 = ''
SET @nID2 = ''
SET @nID3 = ''
SET @SQL = 'SELECT * FROM TABLE_1, TABLE_2 WHERE PK_T1 = FK_T2 '
IF @ID1 = -1 SET @nID1 = 'AND ID1 = @ID1 '
IF @ID2 = -1 SET @nID2 = 'AND ID2 = @ID2 '
IF @ID3 = -1 SET @nID3 = 'AND ID3 = @ID3 '
SET @SQL = @SQL + @nID1 + @nID2 + @nID3
EXEC (@SQL)
END
Espero que os haya sido útil, saludos a todos!!!
jueves, 18 de junio de 2009
Suscribirse a:
Entradas (Atom)