执行语句为变量 为何就报错? 如下exec sp_executesql N'SELECT * FROM TLFGL_LFRY WHERE AU_CLBZ=@temp'
, N'@temp tinyint', @temp='3'
--这个正确 declare @commandTest varchar(1000)
set @commandTest=N'SELECT * FROM TLFGL_LFRY WHERE AU_CLBZ=@temp'
exec sp_executesql @commandTest, N'@temp tinyint', @temp='3'
--报错:
--消息 214,级别 16,状态 2,过程 sp_executesql,第 1 行
--过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。
, N'@temp tinyint', @temp='3'
--这个正确 declare @commandTest varchar(1000)
set @commandTest=N'SELECT * FROM TLFGL_LFRY WHERE AU_CLBZ=@temp'
exec sp_executesql @commandTest, N'@temp tinyint', @temp='3'
--报错:
--消息 214,级别 16,状态 2,过程 sp_executesql,第 1 行
--过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。
谢谢像sp_executesql 储存过程 参数必须为 双字节 编码格式,这只是一个规定的特例吗,还是其他过程,或者函数 有规定要用 unicode的?