Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Perché ottengo La procedura prevede il parametro '@statement' di tipo 'ntext/nchar/nvarchar'. quando provo a usare sp_executesql?

Sembra che tu stia chiamando sp_executesql con un'istruzione VARCHAR, quando deve essere NVARCHAR.

per esempio. Questo darà l'errore perché @SQL deve essere NVARCHAR

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

Quindi:

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