Estos procedimientos son utilizados comúnmente para ejecutar codigo Transact de manera dinamica; es codigo que armamos a partir de hileras para producir un producto que de otra forma seria un poco complicado.
sp_sqlexec esta en desuso, es un procedimiento que MSSQL ya no soporta y por tanto se deberia de reescribir cualquier codigo que lo este utilizando en este momento.
Cuando ejecutamos codigo dinamico podemos usar sp_executesql o bien exec. Con la diferencia de que el sp_executesql probablemente creara un plan de ejecucion que se pueda reutilizar para ejecuciones posteriores.
Sintaxis
USE master GO DECLARE @vsql NVARCHAR(max) SET @vsql = 'select top 210 * from sys.tables' EXEC(@vsql) EXEC sys.sp_sqlexec @vsql EXEC sys.sp_executesql @vsql