Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Pourquoi est-ce que j'obtiens Procedure attend le paramètre '@statement' de type 'ntext/nchar/nvarchar'. quand j'essaie d'utiliser sp_executesql ?

On dirait que vous appelez sp_executesql avec une instruction VARCHAR, alors qu'elle doit être NVARCHAR.

par exemple. Cela donnera l'erreur car @SQL doit être NVARCHAR

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

Donc :

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