Pourquoi ai-je cette erreur
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
quand j'essaye d'utiliser sp_executesql?
Pourquoi ai-je cette erreur
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
quand j'essaye d'utiliser sp_executesql?
Réponses:
On dirait que vous appelez sp_executesql avec une instruction VARCHAR, alors qu'il doit s'agir de 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
Alors:
DECLARE @SQL NVARCHAR(100)
SET @SQL = 'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL
La solution consiste à placer un N devant à la fois le type et la chaîne SQL pour indiquer qu'il s'agit d'une chaîne de caractères codés sur deux octets:
DECLARE @SQL NVARCHAR(100)
SET @SQL = N'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL