求助: 动态创建临时表并成功插入数据后,不能查询出该临时表中的数据,这是什么原因?

wscft 2007-06-20 05:37:23
如下:
...全文
524 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wscft 2007-08-03
  • 打赏
  • 举报
回复
wangtiecheng(不知不为过,不学就是错!) 说的非常对, 现在对这个问题感同身受!
free_pop2k 2007-06-27
  • 打赏
  • 举报
回复
如下就是空白,晕倒!
hb_gx 2007-06-27
  • 打赏
  • 举报
回复
可以用 ## 创建
declare @sql varchar(1000)

set @sql = 'select * into ##t from 某个表'

exec (@sql)

select * from ##t

drop table ##t
ojuju10 2007-06-27
  • 打赏
  • 举报
回复
当断开连接后,系统自动把临时表给删除啦
ojuju10 2007-06-27
  • 打赏
  • 举报
回复
--直接这样建不好的多:

declare @sql varchar(1000)

set @sql = ' select id into # from #t'

exec (@sql)

OracleRoob 2007-06-27
  • 打赏
  • 举报
回复
这个问题,就是变量作用域的问题。

在动态SQL中创建的临时表,不能在外部访问,动态SQL一执行完,临时表自动销毁。

wscft 2007-06-27
  • 打赏
  • 举报
回复
to:wangtiecheng(不知不为过,不学就是错!) , 我遇到的就是这个问题啊, 我是知其然不知其所以然啊, 为什么在exec 中动态执行创建的表不能在 exec 语句外部访问, 还请赐教!
OracleRoob 2007-06-20
  • 打赏
  • 举报
回复
动态创建的临时表,只在动态SQL 语句中有效,在外部无法访问,如:

declare @sql varchar(1000)

set @sql = ' create table #t(id int) insert into #t values(1) select * from #t'

exec (@sql)

不能在exec后,即外部访问在动态SQL创建的临时表
CathySun118 2007-06-20
  • 打赏
  • 举报
回复
simonhehe 2007-06-20
  • 打赏
  • 举报
回复
如果你确定插入成功,那么你是不是在查询之前断开过连接?
gahade 2007-06-20
  • 打赏
  • 举报
回复
应该不会吧.
是不是你代码写的有问题,贴出来看看.
mengmou 2007-06-20
  • 打赏
  • 举报
回复
如下在哪儿?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧