Я писал (казалось бы) прямой фрагмент SQL, который удаляет столбец после того, как он убедится, что столбец существует.
Проблема: если столбец НЕ существует, код внутри предложения IF жалуется, что он не может найти столбец! Ну, дох , поэтому он внутри предложения IF!
Итак, мой вопрос: почему фрагмент кода, который не должен выполняться, выдает ошибки?
Вот фрагмент:
IF exists (select * from syscolumns
WHERE id=object_id('Table_MD') and name='timeout')
BEGIN
ALTER TABLE [dbo].[Table_MD]
DROP COLUMN timeout
END
GO
... и вот ошибка:
Error executing SQL script [...]. Invalid column name 'timeout'
Я использую Microsoft SQL Server 2005 Express Edition.