post icon

Como ejecutar SQL dinámico en SQL Server

Recién escribía sobre SQL Dinámico sobre MySQL y aprovecho para escribir también sobre SQL Server. Escencialmente son muy parecidos la manera de trabajar, pero MsSQL nos ofrece un 2 maneras de llevar a cabo este cometido.

  • Con el comando EXECUTE O EXEC
  • Y con el SP sp_executesql

Deben tener en cuenta que usar el segundo método es más eficiente, ya que el motor puede crear planes de ejecución en base a estadísticas de los querys si se ejecutan más de una vez, y ofrece substitución de parámetros.

EXECUTE

DECLARE @Query NVARCHAR(4000);
DECLARE @Estado NVARCHAR(3);
SET @Estado = 7;

SET @Query = 'USE AdventureWorks; SELECT * FROM Person.Address WHERE StateProvinceID = ' + @Estado;

EXECUTE (@Query);

SP_EXECUTESQL

DECLARE @Query NVARCHAR(4000), @DefinicionParametro NVARCHAR(200), @ValorParametro INT;

SET @DefinicionParametro = '@Estado INT';
SET @ValorParametro = 7;

SET @Query = 'USE AdventureWorks; SELECT * FROM Person.Address WHERE StateProvinceID = @Estado';

EXECUTE sp_executesql @Query, @DefinicionParametro, @ValorParametro;

Comentarios desde Facebook:

Sin Comentarios aun, puedes tú ser el primero en comentar!

Deja tu Comentario

Responder