我想在SQL中编写一个过程,可以检查本地临时表是否存在以及是否使用它。我不想放弃桌子。我已经找到了一种删除本地临时表的方法,即:
DROP TABLE IF EXISTS t;
我也试过以下: 我创建了一个本地临时表TEMP_TABLE。然后我尝试运行此查询:
select object_id('tempdb..TEMP_TABLE')
这只是给我NULL。但是,如果我尝试
select * from TEMP_TABLE
它完美无缺。
所以任何人都可以帮我找到一种方法来检查本地临时表是否存在于sql的任何地方。
答案 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