Why do I get this error
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
when I try to use sp_executesql
?
This question is related to
sql
sql-server
tsql
dynamic-sql
The solution is to put an N in front of both the type and the SQL string to indicate it is a double-byte character string:
DECLARE @SQL NVARCHAR(100)
SET @SQL = N'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL
I had missed another tiny detail: I forgot the brackets "(100)" behind NVARCHAR.
Source: Stackoverflow.com