Início > SQL Server > SQL Server: Como utilizar sp_ExecuteSql

SQL Server: Como utilizar sp_ExecuteSql

O SQL Server possui uma stored procedure chamada sp_executeSql que permite executar frases T-SQL dinamicamente definida pelo desenvolvedor através do comando EXECUTE. Quando utilizamos sp_executeSql devemos informar uma série de parâmetros e tipo de dados.

Quando passamos uma consulta dinâmica para sp_executeSql um plano de consulta é criado e armazenado, assim quando essa mesma consulta for executada novamente, sp_executeSql irá apenas substituir os valores da consulta, ganhando assim performance a partir da segunda execução.

Com sp_executeSql podemos executar não apenas a instrução SELECT, mas também INSERT, UPDATE, DELETE, enfim qualquer ação no banco de dados que sua aplicação requer, podendo inclusive ter parâmetro de saída.

Vamos fazer um exemplo utilizando o banco de dados AdventureWorks (download aqui).

--Declarando as variáveis
DECLARE @sql NVARCHAR(200)
DECLARE @params NVARCHAR(50)
DECLARE @Sexo NVARCHAR(3)
DECLARE @Casado NVARCHAR(3)

--Criando a consulta
SET @sql = 'SELECT DISTINCT CONVERT(VARCHAR(10), h.BirthDate, 103) AS BirthDate ' +
           '  FROM HumanResources.Employee h ' +
           ' WHERE h.Gender > @Gender ' +
           '   AND h.MaritalStatus = @Marital'

--Criando o parâmetros
SET @params = '@Gender NVARCHAR(3), @Marital NVARCHAR(3)'

--Passando valores para os parâmetros
SET @Casado = 'M'
SET @Sexo = 'F'

EXECUTE sp_executeSql @sql, @params, @Gender=@Sexo, @Marital=@Casado

Obrigado e até a próxima

Anúncios
  1. Leonardo Reis
    janeiro 6, 2011 às 10:30 am

    Muito bom, parabêns

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: