Sql server sp#u executesql:过程需要参数'@报表';类型为';ntext/nchar/nvarchar&x27;
以下是我正在尝试做的:Sql server sp#u executesql:过程需要参数'@报表';类型为';ntext/nchar/nvarchar&x27;,sql-server,sql-server-2008,tsql,sql-server-2016,Sql Server,Sql Server 2008,Tsql,Sql Server 2016,以下是我正在尝试做的: EXECUTE sp_executesql 'select * from AccessOrganizationSettings where OrganizationSys = @OrganizationSys', N'@OrganizationSys nvarchar(250)', @OrganizationSys = '805408' 但我得到了这个错误: 过程需要类型为“ntext/nchar/nvarchar”的参数“@stateme
EXECUTE sp_executesql
'select * from AccessOrganizationSettings where OrganizationSys = @OrganizationSys',
N'@OrganizationSys nvarchar(250)',
@OrganizationSys = '805408'
但我得到了这个错误:
过程需要类型为“ntext/nchar/nvarchar”的参数“@statement”
不确定我做错了什么。正如错误所说,您需要
nvarchar
而不是varchar
。尝试:
EXECUTE sp_executesql
N'select * from AccessOrganizationSettings where OrganizationSys = @OrganizationSys',
N'@OrganizationSys nvarchar(250)',
@OrganizationSys = N'805408'
N
使字符串成为nvarchar
数据类型。正如错误所说,您需要nvarchar
而不是varchar
。尝试:
EXECUTE sp_executesql
N'select * from AccessOrganizationSettings where OrganizationSys = @OrganizationSys',
N'@OrganizationSys nvarchar(250)',
@OrganizationSys = N'805408'
N
使字符串成为nvarchar
数据类型。EXEC sys.sp_executesql N'select…,…,@OrganizationSys=N'805408'代码>EXEC sys.sp_executesql N'select…,…,@OrganizationSys=N'805408'代码>啊,好的!我盯着你的答案看了几秒钟,才发现我的问题和你的不同。我错过了第一个N(我会尽快标记为答案)@caseycrokston所有的N
s都很重要,不仅仅是第一个。对于任何nvarchar
string literal,您应该始终包含N
前缀。啊,好的!我盯着你的答案看了几秒钟,才发现我的问题和你的不同。我错过了第一个N(我会尽快标记为答案)@caseycrokston所有的N
s都很重要,不仅仅是第一个。您应该始终为任何nvarchar
字符串文字包含N
前缀。