您的位置:首页 > 数据库

在存储过程中执行动态sql后的返回值的问题

2012-01-10 11:47 453 查看
在存储过程中执行动态sql后的返回值的问题
declare @ret int

exec ('select @ret=12')

print @ret

出现错误:

必须声明标量变量 "@ret"。

declare @ret int

exec sp_executesql N'select @ret=12',N'@ret int out',@ret out

print @ret

declare @ret int

declare @sql nvarchar(1000)

select @sql=N'select @ret=12'

exec sp_executesql @sql,N'@ret int out',@ret out

print @ret

注意,@sql一定要定义为nvarchar,而不能定义为varchar,否则出现:

过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'

参考:

http://topic.csdn.net/t/20040608/09/3072500.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: