sp_executesql sp_execute example ejecutar commands sql sql-server tsql dynamic-sql

example - sp_execute sql server



¿Por qué obtengo el "Procedimiento espera el parámetro ''@statement'' de tipo ''ntext/nchar/nvarchar''." Cuando intento usar sp_executesql? (2)

¿Por qué recibo este error?

Procedure expects parameter ''@statement'' of type ''ntext/nchar/nvarchar''.

cuando intento usar sp_executesql?


La solución es poner una N delante del tipo y la cadena SQL para indicar que es una cadena de caracteres de doble byte:

DECLARE @SQL NVARCHAR(100) SET @SQL = N''SELECT TOP 1 * FROM sys.tables'' EXECUTE sp_executesql @SQL


Parece que estás llamando a sp_executesql con una instrucción VARCHAR, cuando necesita ser NVARCHAR.

Por ejemplo, esto dará el error porque @SQL debe ser NVARCHAR

DECLARE @SQL VARCHAR(100) SET @SQL = ''SELECT TOP 1 * FROM sys.tables'' EXECUTE sp_executesql @SQL

Asi que:

DECLARE @SQL NVARCHAR(100) SET @SQL = ''SELECT TOP 1 * FROM sys.tables'' EXECUTE sp_executesql @SQL