S softdog Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-15 #1 如果是一个正常的表,会在sysobjects中记录,就可以在建立之前判断是否存在,但一个 临时表怎么判断是否已经存在呢?(局部临时表)
L lzmch Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-16 #2 这样做行不行: with TQUERY.Create(self) do begin databasename:='aaa'; SQL.clear; SQL.Add('select * from 你的临时表'); try Open; except showmessage('你的临时表不存在'); end; end;
这样做行不行: with TQUERY.Create(self) do begin databasename:='aaa'; SQL.clear; SQL.Add('select * from 你的临时表'); try Open; except showmessage('你的临时表不存在'); end; end;
C chelon Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-16 #6 select * from [tempdb].dbo.sysobjects where name='#Your_temp_table'
S softdog Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-16 #7 chelon的方法可以查到该临时表,但是情况不是想象的那样,比如: 创建了一个临时表#temptable,在tempdb的sysobjects中该表的名称是 #temptable___________________________00000000003D ^^^^^^^^^^^^这里是一个ID 这时候还是没办法判断取得的临时表是不是当前的连接创建的,我想这应该和后面跟的ID有关
chelon的方法可以查到该临时表,但是情况不是想象的那样,比如: 创建了一个临时表#temptable,在tempdb的sysobjects中该表的名称是 #temptable___________________________00000000003D ^^^^^^^^^^^^这里是一个ID 这时候还是没办法判断取得的临时表是不是当前的连接创建的,我想这应该和后面跟的ID有关
S softdog Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-16 #8 我找到方法了,参考了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的帮助比较好!
我找到方法了,参考了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的帮助比较好!
L lazy_cat Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-16 #9 if (select object_ID('tempdb..#tablename'))>0 (only for sql server)