首页 新闻 会员 周边

EXEC 执行动态sql 带输出参数的问题

0
[已解决问题] 解决于 2013-09-06 16:16

语句:

declare @TotalCount int,@sql varchar(100)

set @sql='SELECT @Count=count(*) from student where name like ''%小%'''

exec sp_executesql @sql,N'@Count int output',@totalCount output

结果:

消息 214,级别 16,状态 2,过程 sp_executesql,第 1 行 过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。

颜熙的主页 颜熙 | 菜鸟二级 | 园豆:222
提问于:2012-11-06 13:35
< >
分享
最佳答案
1

这个很明显有问题,

sp_executesql存储过程的参数和动态Sql都必须是nvarchar类型的,你使用varhcar类型的做为动态Sql语句肯定是不行的,

把名修改一下就行了

declare @TotalCount int,@sql varchar(100)

修改成

declare @TotalCount int,@sql Nvarchar(100)

可以看看我的文章,里面有详细的说明

sp_executesql使用方法与介绍

奖励园豆:5
苏飞 | 老鸟四级 |园豆:2024 | 2012-11-06 14:24

http://www.sufeinet.com/thread-372-1-1.html

更正一下上面的链接,原来的网站域名换了

苏飞 | 园豆:2024 (老鸟四级) | 2013-11-19 14:13
其他回答(1)
0

你这sq定义输出参数了么 没定义怎么直接传

oppoic | 园豆:770 (小虾三级) | 2012-11-06 13:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册