Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Por que eu recebo O procedimento espera o parâmetro '@statement' do tipo 'ntext/nchar/nvarchar'. quando tento usar sp_executesql?


Parece que você está chamando sp_executesql com uma instrução VARCHAR, quando precisa ser NVARCHAR.

por exemplo. Isso dará o erro porque @SQL precisa ser NVARCHAR
DECLARE @SQL VARCHAR(100)
SET @SQL = 'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL

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