domingo, 17 de maio de 2009

Implementando SQL Dinâmico no Microsoft Sql Server

Em algumas implementações, temos a necessidade de executar queries que podem receber ou não determinados parâmetros. Estas interações podem variar de acordo com a necessidade do usuário.

Podemos atender estas demandas utilizando a função EXEC, para executar sql dinâmico.

Vejamos um exemplo:

Primeiro, vamos criar uma tabela temporária com algumas informações:

CREATE TABLE #temp (
Id INT IDENTITY(1,1),
Nome VARCHAR(10)
)

INSERT #temp (Nome)
VALUES ('Rodrigo')

INSERT #temp (Nome)
VALUES ('Rafael')

INSERT #temp (Nome)
VALUES ('Wanderley')

INSERT #temp (Nome)
VALUES ('Daniel')

INSERT #temp (Nome)
VALUES ('Evelise')

INSERT #temp (Nome)
VALUES ('Luisa')

INSERT #temp (Nome)
VALUES ('Carolina')

INSERT #temp (Nome)
VALUES ('Amanda')

INSERT #temp (Nome)
VALUES ('Marley')


Agora vamos criar duas variáveis, que receberão o sql dinâmico:

DECLARE @SQL VARCHAR(100)
DECLARE @NOME VARCHAR(50)

SET @NOME = 'Rodri'
SET @SQL = 'SELECT * FROM #TEMP WHERE NOME LIKE ''%'+@NOME+'%'' '

EXEC(@SQL)

DROP TABLE #TEMP


Com as estruturas de controle do Sql Server, podemos verificar se os parâmetros foram preenchidos e compor o sql de maneira dinâmica .

Até a próxima!

Nenhum comentário:

Postar um comentário

Leave your comment here!