Consultas dinâmicas em Transact-SQL
Veja neste artigo como trabalhar com consultas dinâmicas no SQL Server.
Neste artigo vamos ver como trabalhar com consultas dinâmicas no SQL Server. Este tipo de consulta é útil quando não temos informações sobre os dados a serem consultados, só teremos estas informações em tempo de execução. Um bom exemplo de uma consulta dinâmica seria uma stored procedure que retorna a quantidade total de registro de uma tabela X, porém só saberemos o nome da tabela em tempo de execução. Existem duas maneiras de executar query’s dinâmicas no SQL Server, usando o comando EXEC() ou usando uma stored procedure padrão chamda sp_executesql, logo mais veremos como utilizar um recurso ou outro. Para simular os exemplos vamos utilizar o banco de dados Northwind.Veja na figura 1 a tentativa de executar uma query dinâmica.
Pode-ser verificar pela figura 1 que é preciso utilizar algumas artimanhas para executar consultas dinâmicas.Vamos agora executar a mesma consulta usando o comando EXEC() e sp_executesql. Veja os exemplos nas figuras 2 ,3 e 4.
Um exemplo utilizando variáveis como parâmetros da consulta
Vamos agora ver um exemplo um pouco mais complicado, neste caso tudo será definido dinamicamente, o nome da tabela, a condição da consulta e o parâmetro da consulta. Veja o exemplo na figura 5.
Perceba que na query montada dinamicamente o parâmetro @CustomerID está sem aspas simples, neste caso o SQL irá tratar isso como uma coluna da tabela e se você tentar executar esta query com certeza irá receber a seguinte mensagem: “Invalid column name 'VINET'”. Para resolver este problema vamos colocar aspas simples antes e após o nome da variável na query gerada dinamicamente. Veja na figura 6 o resultado.
Usando sp_executesql com parâmetros
Vamos agora ver como executar query’s dinâmicas com a stored procedure sp_executesql utilizando parâmetros de entrada, esta seria uma maneira de resolver o problema acima. Você pode perceber olhando a figura 7 que devemos enviar a query a ser executada, os tipos de parâmetro e finalmente os parâmetros.
Conclusão
Neste artigo mostramos como trabalhar com query’s dinâmicas no SQL Server, trata-se de uma dica muito útil no dia a dia de quem usa a Transacat-SQL. Se você ainda não usou query’s dinâmicas com certeza uma hora irá precisar utilizar. Espero que a dica seja útil.
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo