日期:2014-05-17  浏览次数:20540 次

SQL exec获取返回值报错
具体代码:
declare @sqll varchar(500)--执行的SQL语句
declare @dept varchar(20)--变量
declare @empid int--变量
declare @gz_date varchar(20)--返回值
set @empid=3
set @dept='开发部'
set @sqll='select @a=gz_date from '+@dept+' where empid='+CONVERT(varchar(20),@empid)
exec sp_executesql @sqll,N'@a varchar(20) output', @gz_date OUTPUT 

上述代码执行时会报错:过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。
这该怎么解决?
------最佳解决方案--------------------
declare @sqll varchar(500)--执行的SQL语句
要换成nvarchar(500)数据类型吧
------其他解决方案--------------------
declare @sqll nvarchar(500)--执行的SQL语句
------其他解决方案--------------------
嗯,已经好了,多谢两位解答