好的,所以 Sybase (12.5.4) 将让我执行以下操作来 DROP 一个表(如果它已经存在):
IF EXISTS (
SELECT 1
FROM sysobjects
WHERE name = 'a_table'
AND type = 'U'
)
DROP TABLE a_table
GO
但是如果我尝试对表创建做同样的事情,我总是会收到表已经存在的警告,因为它继续尝试创建我的表并忽略了条件语句。只需尝试运行以下语句两次,您就会明白我的意思:
IF NOT EXISTS (
SELECT 1
FROM sysobjects
WHERE name = 'a_table'
AND type = 'U'
)
CREATE TABLE a_table (
col1 int not null,
col2 int null
)
GO
运行以上会产生以下错误:
SQL Server 错误(localhost)错误:2714 at Line:7 消息:数据库中已经有一个名为“a_table”的对象。
这有什么关系?!