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

语句:

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'。


慕无忌1623718
浏览 898回答 1
1回答

潇湘沐

这个很明显有问题,sp_executesql存储过程的参数和动态Sql都必须是nvarchar类型的,你使用varhcar类型的做为动态Sql语句肯定是不行的,把名修改一下就行了declare @TotalCount int,@sql varchar(100)修改成declare @TotalCount int,@sql Nvarchar(100)
打开App,查看更多内容
随时随地看视频慕课网APP