sql >> Base de Datos >  >> RDS >> Sqlserver

¿Por qué obtengo Procedimiento espera el parámetro '@statement' de tipo 'ntext/nchar/nvarchar'. cuando trato de usar sp_executesql?

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

p.ej. Esto dará el error porque @SQL necesita ser NVARCHAR

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

Entonces:

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