sp_executesql的:过程需要类型的参数“@statement 'NTEXT/NCHAR/nvarchar的'
问题描述:
这里就是我想要做的事:sp_executesql的:过程需要类型的参数“@statement 'NTEXT/NCHAR/nvarchar的'
EXECUTE sp_executesql
'select * from AccessOrganizationSettings where OrganizationSys = @OrganizationSys',
N'@OrganizationSys nvarchar(250)',
@OrganizationSys = '805408'
但我得到这个错误:
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'
不确定我做错了什么。
答
如错误所述,您需要nvarchar
而不是varchar
。尝试:
EXECUTE sp_executesql
N'select * from AccessOrganizationSettings where OrganizationSys = @OrganizationSys',
N'@OrganizationSys nvarchar(250)',
@OrganizationSys = N'805408'
的N
使得字符串的nvarchar
数据类型。
+0
啊好的!我花了几秒钟的时间盯着你的答案,看看我的查询和你的查询之间的区别。我错过了第一个N.(我会尽快回答它的答案) –
+2
@CaseyCrookston *所有*'N's重要,不只是第一个。你应该总是为任何'nvarchar'字符串文字包含'N'前缀。 –
'EXEC sys.sp_executesql N'select ...',...,@OrganizationSys = N'805408';' –