怎样判断一个临时表是否已经存在?(20分)

  • 主题发起人 主题发起人 softdog
  • 开始时间 开始时间
S

softdog

Unregistered / Unconfirmed
GUEST, unregistred user!
如果是一个正常的表,会在sysobjects中记录,就可以在建立之前判断是否存在,但一个
临时表怎么判断是否已经存在呢?(局部临时表)
 
这样做行不行:
with TQUERY.Create(self) do
begin
databasename:='aaa';
SQL.clear;
SQL.Add('select * from 你的临时表');
try
Open;
except
showmessage('你的临时表不存在');
end;
end;
 
上面的方法可能是最简单的了。
 
select * from [tempdb].dbo.sysobjects
where name='#Your_temp_table'
 
chelon的方法可以查到该临时表,但是情况不是想象的那样,比如:
创建了一个临时表#temptable,在tempdb的sysobjects中该表的名称是
#temptable___________________________00000000003D
^^^^^^^^^^^^这里是一个ID
这时候还是没办法判断取得的临时表是不是当前的连接创建的,我想这应该和后面跟的ID有关
 
我找到方法了,参考了chelon的一点思路,
我创建了一个存储过程判断:

create procedure
TableExists
@tablename varchar(20)
As

if exists (select * from tempdb.dbo.sysobjects
where id = object_id('tempdb.dbo.'+@tablename))
return 1
else
return 0
呵呵!还是SQL的帮助比较好!

 
if (select object_ID('tempdb..#tablename'))>0
(only for sql server)
 
多人接受答案了。
 
FileExits函数
 

Similar threads

S
回复
0
查看
745
SUNSTONE的Delphi笔记
S
S
回复
0
查看
754
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部