查找sql​​中是否存在本地临时表并使用它

时间:2015-05-21 08:13:29

标签: sql sybase sqlanywhere

我想在SQL中编写一个过程,可以检查本地临时表是否存在以及是否使用它。我不想放弃桌子。我已经找到了一种删除本地临时表的方法,即:

DROP TABLE IF EXISTS t;

我也试过以下: 我创建了一个本地临时表TEMP_TABLE。然后我尝试运行此查询:

select object_id('tempdb..TEMP_TABLE')

这只是给我NULL。但是,如果我尝试

select * from TEMP_TABLE

它完美无缺。

所以任何人都可以帮我找到一种方法来检查本地临时表是否存在于sql的任何地方。

2 个答案:

答案 0 :(得分:2)

我不确定您使用的是哪个版本的Sybase,但这在Sybase 11中有效,所以我可以想象它在任何版本中都可以使用:

Begin
Create local Temporary table TEMP_TABLE (column1 int); //Create temp table
// any other code needed to be executed if table did not exist
Exception when others then
// Code to be executed when table does exist
end;

这基本上是sybase的try..catch。如果临时表存在,它将抛出异常,例外情况下,您可以运行想要知道该表已存在的代码。

答案 1 :(得分:-1)

在一个查询中,您指的是数据库而在另一个查询中,您不是,请尝试以下两个查询。

 select object_id('tempdb..TEMP_TABLE')
 select * from tempdb..TEMP_TABLE


select object_id('TEMP_TABLE')
select * from TEMP_TABLE