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