【发布时间】:2010-09-12 08:48:54
【问题描述】:
我正在编写一个(看似)直截了当的 SQL sn-p,它在确保列存在后删除该列。
问题:如果该列不存在,IF 子句inside 的代码会抱怨找不到该列!嗯,doh,这就是它在 IF 子句中的原因!
所以我的问题是,为什么一段不应该执行的代码会出错?
这是sn-p:
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。
【问题讨论】: