sql - sql脚本第一次运行时检查表是否存在(优势数据架构师)

标签 sql advantage-database-server

美好的一天。

我有以下问题:

是否可以在第一次运行sql脚本时检查表是否存在?

我正在使用 Advantage Data Architect 11.10。

我想澄清我的问题。

在我的脚本中,每次启动 sql 脚本时我都需要创建一个临时表。为此,我删除了我的临时表并重新创建了表。例如(一):

...
if exists (select * from #tmp) then
delete table #tmp;
end if;

create table #tmp (g integer);
...

但是当我第一次运行我的脚本时,我得到了以下错误:

The temporary table cannot be found.

为了修复这个错误,我被迫“亲手”创建了一个临时表。然后我在“示例 (1)”中展示的代码可以正常工作。

谢谢。

对不起我的英语。

最佳答案

一个解决方案是这样的:

TRY DROP TABLE #tmp; CATCH ALL END TRY;

CREATE TABLE #tmp ...

另一种解决方案:

IF NOT EXISTS (SELECT 1 FROM (EXECUTE PROCEDURE sp_GetTables (NULL, NULL, 'tmp', 'LOCAL TEMPORARY')) getTables ) THEN
  CREATE TABLE #tmp ...
END IF;

另见此处:

http://devzone.advantagedatabase.com/forum/questions/5573/determine-if-temp-table-exists

关于sql - sql脚本第一次运行时检查表是否存在(优势数据架构师),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26930495/

相关文章:

mysql - 选择查询两个科目中分数至少为 60 的学生姓名

delphi - 从本地客户端连接中检索带有路径的服务器数据的SQL SELECT

python - 是否有用于访问 Advantage 数据库服务器的 Python 模块?

sql - 如何在 SQL Server 2005 中查找表中多列的总和?

mysql - bash 脚本中的 SQL 语法错误

sql - 开始尝试在SQL Server 2005上捕获,如何将ERROR_stuff发送给调用的父级?

sql - 使用单独的日期和时间字段查询最近的记录

mysql - 使用 MySQL 通过 ODBC 包装另一个 DBMS

delphi - 如何将 Advantage API 示例 C 代码转换为 Delphi

mysql - #1054 - 'Owner' 中的未知列 'field list'