求助: 动态创建临时表并成功插入数据后,不能查询出该临时表中的数据,这是什么原因?
如下:
[解决办法]
如下在哪儿?
[解决办法]
应该不会吧.
是不是你代码写的有问题,贴出来看看.
[解决办法]
如果你确定插入成功,那么你是不是在查询之前断开过连接?
[解决办法]
?
[解决办法]
动态创建的临时表,只在动态SQL 语句中有效,在外部无法访问,如:
declare @sql varchar(1000)
set @sql = ' create table #t(id int) insert into #t values(1) select * from #t '
exec (@sql)
不能在exec后,即外部访问在动态SQL创建的临时表
[解决办法]
这个问题,就是变量作用域的问题。
在动态SQL中创建的临时表,不能在外部访问,动态SQL一执行完,临时表自动销毁。
[解决办法]
--直接这样建不好的多:
declare @sql varchar(1000)
set @sql = ' select id into # from #t '
exec (@sql)
[解决办法]
当断开连接后,系统自动把临时表给删除啦
[解决办法]
可以用 ## 创建
declare @sql varchar(1000)
set @sql = 'select * into ##t from 某个表 '
exec (@sql)
select * from ##t
drop table ##t
[解决办法]
如下就是空白,晕倒!