给定以下 SQL:
IF EXISTS (SELECT * FROM sys.columns WHERE name = 'NewFieldName' AND object_id = OBJECT_ID('dbo.MyTableName'))
RETURN
-- Add NewFieldName column to part of the Summer 2012 release cycle.
ALTER TABLE dbo.[MyTableName] ADD
[NewFieldName] SmallINT NOT NULL
CONSTRAINT DF_MyTableName_NewFieldName DEFAULT (2)
UPDATE [MyTableName] SET NewFieldName = 1 WHERE [Name] = 'FindMe' --Update one specific value
产生以下错误消息:
消息 207,级别 16,状态 1,第 10 行无效的列名称“NewFieldName”。
我确定我错过了一些基本的东西,但是尝试在更改之后放置“GO”会使 UPDATE 每次都运行,我不想那样做。
我如何构造这个语句,以便它检查该列是否存在,如果它不添加它,然后按照我的 UPDATE 语句中的说明设置值?