临时表问题
1)想把一个表(A)的所有数据备份到一个临时表(TMP),是否可以这样写:"SELECT * INTO #TMP FROM A"?做完这个动作后还要做一些数据库操作,最后再把临时表的数据全部恢复到A表中.问题是此时的临时表是用全局的还是局部的?或者这样做可行否?
2)临时表的数据恢复到A时,是否可以这样写"INSERT INTO A SELECT * FROM #TMP ".问题是这个时候的临时表的数据是否还存在?
问题点数:100、回复次数:17Top
1 楼pbsql(风云)回复于 2004-12-01 19:55:32 得分 20
1)可行,全局的、局部的都可以
2)正确
Top
2 楼txlicenhe(马可)回复于 2004-12-01 20:01:20 得分 0
楼主已经试过了,故意来逗大家玩的。Top
3 楼xingfuniao(幸福鸟)回复于 2004-12-01 20:04:48 得分 0
写在一个事务中1和2都可以。否则用全局表。Top
4 楼lh1979(rocket)回复于 2004-12-01 20:17:46 得分 0
#tablename 是局部的
##tablename 是全局临时表Top
5 楼lxd99423(苹果)回复于 2004-12-01 20:25:09 得分 0
强,敢逗大家玩Top
6 楼yingqing(曾明)回复于 2004-12-01 20:27:14 得分 0
呵呵,開心一下啊Top
7 楼yahoo402(小华同学)回复于 2004-12-01 20:45:22 得分 0
学一下嘛,我不懂 :)Top
8 楼bflovesnow()回复于 2004-12-01 20:45:32 得分 0
试了没???Top
9 楼lmj2003(雁不归)回复于 2004-12-01 23:01:10 得分 0
说的很正确!!Top
10 楼vinsonshen(为了明天)回复于 2004-12-01 23:14:00 得分 20
#是局部的(你在一个查询分析器窗口建立#只能在这个查询分析器上访问,别的不行)~~~~~##是全局的(可以在所有查询分析器窗口上访问)~~~
注意:不关是局部的还是全局的,当创建该临时表的查询分析器窗口关闭了,则该临时表会消失。Top
11 楼vinsonshen(为了明天)回复于 2004-12-01 23:19:13 得分 20
判断一个临时表是否存在:
if exists (select * from tempdb.dbo.sysobjects where [name]=临时表名)
print '存在'
else
print '不存在'
Top
12 楼didoleo(冷月无声)回复于 2004-12-03 14:24:36 得分 10
if object_id('tempdb..#TMP ') is not null
drop table #TMP
SELECT * INTO #TMP FROM ATop
13 楼tddw(承接各种项目)回复于 2004-12-03 14:33:32 得分 0
楼主厉害Top
14 楼mastersky(浪)回复于 2004-12-03 14:38:03 得分 0
学习Top
15 楼comszsoft(星星点灯)回复于 2004-12-03 14:40:21 得分 30
都可以阿,临时表在sql重新启动后才会消失,只要不重新启动当然可以用了,不过用后别忘了
drop table #temp
删除掉,不然会报错Top
16 楼cqdj(快乐的游民)回复于 2004-12-03 14:43:20 得分 0
不过,这样要是突然掉电,你就......,最好还是到另外一个表中吧,最后再删除也可以啊.没有什么危险.Top
17 楼xn127(落叶声)回复于 2004-12-10 11:37:05 得分 0
感谢大家捧场,小女子在此谢了:)Top




