sql server 获取动态sql输出结果
2016-01-18 11:36
447 查看
语法
用法实例
1、获取一个输出结果
使用output获取输出结果的值
2、两个输出结果
3、输入参数
对于输入参数也可以直接写到语句里面
或
sp_executesql [ @stmt = ] stmt [ {, [@params=] N'@parameter_name data_type [ [ OUT [ PUT ][,...n]' } {, [ @param1 = ] 'value1' [ ,...n ] } ]
用法实例
1、获取一个输出结果
使用output获取输出结果的值
declare @num int, @sqls nvarchar(4000) set @sqls='select @a=count(*) from customer ' exec sp_executesql @sqls,N'@a int output',@num output select @num
2、两个输出结果
declare @num int, @sqls nvarchar(4000) ,@sname char(10) set @sqls='select @a=sno,@b=sname from aa ' exec sp_executesql @sqls,N'@a int output,@b char(10) output',@num output,@sname output select @num select @sname
3、输入参数
DECLARE @TableName VARCHAR(50),@sql NVARCHAR(MAX),@OID INT; SET @TableName = 'aa '; SET @OID = 1; SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + ' WHERE sno ='+ cast(@OID as char(10)) ; exec sp_executesql @sql
对于输入参数也可以直接写到语句里面
DECLARE @TableName VARCHAR(50),@sql NVARCHAR(MAX),@OID INT; SET @TableName = 'aa '; SET @OID = 1; SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + ' WHERE sno =@oid' exec sp_executesql @stmt= @sql, @params = N'@OID AS INT ', @OID = @OID
或
DECLARE @TableName VARCHAR(50),@sql NVARCHAR(MAX),@OID INT; SET @TableName = 'aa '; SET @OID = 1; SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + ' WHERE sno =@oid' exec sp_executesql @sql, N'@OID AS INT ', @OID
相关文章推荐
- oracle11g数据库操作
- Mysql 模糊匹配和转义字符
- 禁用sqlserver的锁升级
- Oracle的订购方式?400-186-5808
- postgresql访问认证设置
- python-memcached模块
- T-SQL 之 SQL执行顺序
- 外部工具或软件连到Oracle数据库
- MongoDB数据模型设计学习
- Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
- 通过sqlserver日志恢复误删除的数据
- 将Excel数据快速大批量导入数据库
- MySQL 使用SELECT ... FOR UPDATE 做事务写入前的确认(转)
- Mycat学习笔记 第三篇. MySql 主从同步异常后,主从切换
- 用sql脚本建立Mysql数据库及表
- mysql数据类型
- 数据库三范式
- 【转】使用SQLCipher进行加解密
- Mysql与Oracle区别
- redis取zset中score最大的member