存储过程中表名作为参数时,临时表的检索

存储过程中表名作为参数时的操作
表名作为参数在存储过程中使用时,只能通过拼语句来实现
有个表名参数 @TmpTabName varchar(100)
创建该表
set @sql = 'create Table '+@TmpTabName+'( AllStnCount decimal(8,2), OnLineCount decimal(8,2), OnLineRate  decimal(8,2))';
print(@sql);
exec(@sql);
向表中插入数据 values值只能转换成字符串插入
set @sql = 'insert into ' + @TmpTabName + ' values ('''+convert(varchar,@AllCount)+''',''' +convert(varchar,@OnLineCount)+''','''+convert(varchar, @OnLineCount/@AllCount*100) + ''')';
print(@sql);
exec(@sql);


局部临时表和全局临时表都在tempdb数据库中有记录
一般的表在master中有记录
查找临时表
select * from tempdb..sysobjects where id=object_id('tempdb..##TempTable')
查找一般表
SELECT name FROM sysobjects WHERE  name = 'Table1' AND   type = 'U'
#TempTable:局部临时表:只存在当前会话中,会话:应用程序中执行一次sql操作,本次会话结束后局部临时表自动删除
##TempTable:全局临时表:只要创建该全局临时表的连接没有断开,其他的连接都可以使用创建的全局临时表,创建该全局临时表的连接断开时临时表自动删除
exec(@sql) 相当于重新建立一个数据库对话

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值