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