为什么会出现此错误
过程需要'ntext/nchar/nvarchar‘类型的参数'@statement’。
当我尝试使用sp_executesql
时
发布于 2010-04-30 18:47:11
听起来像是在使用VARCHAR语句调用sp_executesql,而它需要是NVARCHAR语句。
例如,这将产生错误,因为@SQL需要为NVARCHAR
DECLARE @SQL VARCHAR(100)
SET @SQL = 'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL
所以:
DECLARE @SQL NVARCHAR(100)
SET @SQL = 'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL
发布于 2010-04-30 18:51:23
解决方案是将N放在类型和SQL字符串的前面,以指示它是双字节字符串:
DECLARE @SQL NVARCHAR(100)
SET @SQL = N'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL
发布于 2020-02-14 17:03:27
我遗漏了另一个小细节:我忘记了NVARCHAR后面的括号"(100)“。
https://stackoverflow.com/questions/2743890
复制相似问题