动态执行Sql语句与临时表的问题(对象名无效)

本文探讨了在SQL中使用exec执行动态SQL创建局部临时表(#表名)时遇到的作用域问题,即在exec外部无法访问该临时表。文章提供了将局部临时表改为全局临时表(##表名)的解决方案,并附带示例代码。

exec('selectIDENTITY(int,1,1)  as ID,fnum,into  #yuecu  from  store_store where  '+@Parameter)  
select  XX,XX1,XX2  from  #yuecu 

这样创建一个临时表以后我再想从临时表中取数据提示对象名#yuecu 无效,晕,如果我不是使用exec()执行sql语句的话就没有任何问题,WHY?  

临时表有作用域的,上面的临时表只在EXEC內部有效。

解决办法:

改用全局临时表

exec('selectIDENTITY(int,1,1)  as ID,fnum,into  ##yuecu  from  store_store where  '+@Parameter)  

select * from  ##yuecu  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值