ОК, поэтому Sybase (12.5.4) позволит мне сделать следующее, чтобы УБРАТЬ таблицу, если она уже существует:
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 на (локальный хост)
Ошибка: 2714 в строке: 7 Сообщение: есть
уже объект с именем "a_table" в
база данных.
В чем дело?!