语句:
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'。
这个很明显有问题,
sp_executesql存储过程的参数和动态Sql都必须是nvarchar类型的,你使用varhcar类型的做为动态Sql语句肯定是不行的,
把名修改一下就行了
declare @TotalCount int,@sql varchar(100)
修改成
declare @TotalCount int,@sql Nvarchar(100)
可以看看我的文章,里面有详细的说明
http://www.sufeinet.com/thread-372-1-1.html
更正一下上面的链接,原来的网站域名换了
你这sq定义输出参数了么 没定义怎么直接传