Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找sql anywhere中是否存在本地临时表并使用它_Sql_Sybase_Sqlanywhere - Fatal编程技术网

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

查找sql anywhere中是否存在本地临时表并使用它,sql,sybase,sqlanywhere,Sql,Sybase,Sqlanywhere,我想在SQLAnywhere中编写一个过程,它可以检查本地临时表是否存在以及是否使用它。我不想丢掉桌子。我已经找到了删除本地临时表的方法,它是: DROP TABLE IF EXISTS t; 我也尝试过以下方法: 我创建了一个本地临时表TEMP_table。然后我尝试运行此查询: select object_id('tempdb..TEMP_TABLE') 这只是给我零。但是如果我尝试 select * from TEMP_TABLE 它工作得非常好 任何人都可以帮我找到一种方法来检查本

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

DROP TABLE IF EXISTS t;
我也尝试过以下方法: 我创建了一个本地临时表TEMP_table。然后我尝试运行此查询:

select object_id('tempdb..TEMP_TABLE')
这只是给我零。但是如果我尝试

select * from TEMP_TABLE
它工作得非常好


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

在一个查询中引用数据库,在另一个查询中不引用数据库,请尝试下面两个查询

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


select object_id('TEMP_TABLE')
select * from TEMP_TABLE

我不确定您使用的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的一次尝试。如果临时表存在,它将抛出一个异常,在异常中,您可以运行希望知道该表已经存在的代码。

您使用的是什么版本的Sybase?有疑问的是,它不是说SAP SQL,而是说SQL。我的查询将与Microsoft SQL Server配合使用。OP确实声明了“SQL Anywhere”,但小写字母“a”除外。查找本地临时表是否存在于SQL Anywhere中,并使用它和SQL Anywhere,问题中的sql anywhere听起来更像是询问如何访问sql中任意位置的临时表。更令人困惑的是,我们在sql和tempdb中有object_id。我们还使用双点引用数据库,如tempdb..Temp_表。问题中提到的两个查询都可以在tempdb和其他数据库中的任意位置使用SQL。我认为很明显,他不是在寻找与MS SQL Server兼容的东西。只是出于好奇,你知道为什么tempdb语法在SQL anywhere中不起作用吗?我正在使用sql anywhere 16。我不知道为什么。说实话有点奇怪。如果它是在同一个事务中执行的,那么它是有效的,但是如果您正在寻找一个已经存在的临时表,那么它似乎不喜欢它,但我不确定为什么。