在存储过程中执行动态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
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
相关文章推荐
- oracle 存储过程执行动态sql返回游标
- IQ存储过程中执行有结果集返回的动态SQL的调用方法
- 存储过程返回参数的方法(也是执行动态sql 实现列名成为变量的功能)
- oracle存储过程中如何执行动态SQL语句
- mysql 存储过程动态执行sql
- PL/SQL块或者存储过程中不能执行DDL,可以使用动态SQL
- 存储过程中执行动态Sql语句
- 存储过程中执行动态Sql语句
- 用存储过程动态生成sql语句并执行
- oracle字符集乱码及返回 REF CURSOR 的存储过程执行问题
- sqlserver存储过程动态sql长度限制问题
- mysql 存储过程动态拼接sql并执行赋值
- oracle execute immediate 动态执行SQL存储过程
- mysql存储过程动态执行sql
- 存储过程中执行动态Sql语句
- 存储过程执行删除重复数据、动态执行sql、拼接sql
- Oracle存储过程执行动态sql
- MySQL 存储过程中执行动态SQL语句的方法
- oracle 存储过程执行可输入sql语句并返回结果集
- 存储过程中用exec执行sql语句问题