判断某个临时表是否存在?

[复制链接]
查看11 | 回复7 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
if exists (select * from tempdb.dbo.sysobjects where name = '##TmpT')
drop table [dbo].[##TmpT]
这样写可以吧,我看sql server自动生成的sql语句挺严密的
赫赫
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
注意在7.0中和2000中是不一样的。
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
有什么不一样?
我们可是一会儿7.0一会儿2000的!
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
在7.0中temp table是存放在各自的DB中的,而2000中将temp table集中到tempdb来存放.
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
My god!
那该用什么函数或存储过程判断他的版本
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
xmmhacker:
這是誰告訴你的?
不管是6.5還是7.0還是2000
所有的臨時表都是放在tempdb數據庫中的[/COLOR]

判斷臨時表是否存在只要用這樣的語句即可:
if[/COLOR] object_id[/COLOR]('tempdb.dbo.##TmpT'[/COLOR]) is[/COLOR] not null
drop table[/COLOR] ##TmpT
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
不管是6.5還是7.0還是2000
所有的臨時表都是放在tempdb數據庫中的[/COLOR]
判斷臨時表是否存在只要用這樣的語句即可:
if[/COLOR] object_id[/COLOR]('tempdb.dbo.##TmpT'[/COLOR]) is[/COLOR] not null
drop table[/COLOR] ##TmpT [/B][/QUOTE]
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
zhuzhichao 厉害,sql server中确实所有临时表都存在于tempdb中!这一点,连微软自己的帮助文件都错了。不过在获得临时表ID时,只需要一个“#”哦,呵呵。多谢了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行