ОК, так что Sybase (12.5.4) позволит мне сделать следующее DROP таблицу, если она уже существует:Как условно создать таблицу в Sybase (TSQL)?
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 Error on (localhost) Error:2714 at Line:7 Message:There is already an object named 'a_table' in the database.
В чем дело с этим ?!
Что с ответами на downvoting? А потом наградить себя принятием? За не-ответ? – dkretz 2009-02-01 03:21:59
Я подал ответные ответы, которые не помогают ответить на вопрос, это цель downvoting. Я поддержал ответы, которые помогли и были жизнеспособными, но в итоге единственным решением, которое сработало для меня, было мое собственное. Я не получаю репутацию для ответа на свой собственный вопрос, так что это не для меня. – ninesided 2009-02-01 10:24:23
Достаточно честный. Я запомню, что не отвечу, если не буду уверен, что ваш вопрос будет рассмотрен моим ответом. В этом случае информации было недостаточно, поэтому я тратил впустую свое время. – dkretz 2009-02-01 22:57:02