SQL Server 2005的添加非空列到SQL表腳本 - 得到一個錯誤
以下3行的SQL工作沒有錯誤,如果IS_ACTIVE列曾在Dim_Form表以前存在。
即,如果Is_Active先前不存在,則運行以下3行會給出如下所示的錯誤;
ALTER TABLE dbo.Dim_form add Is_Active bit NULL
UPDATE dbo.Dim_form set Is_Active = 1
ALTER table dbo.Dim_form alter column Is_Active bit NOT NULL
我得到這個錯誤只有當它的一個「全新」列
Msg 207, Level 16, State 1, Line 2
Invalid column name 'Is_Active'.
如果我運行這個
ALTER TABLE dbo.Dim_form add Is_Active bit NULL
GO
UPDATE dbo.Dim_form set Is_Active = 1
ALTER TABLE dbo.Dim_form alter column Is_Active bit NOT NULL
-- and now drop the newly created column
ALTER TABLE dbo.Dim_form DROP COLUMN Is_Active
現在我可以運行原來的3線SQL的成功 - 有什麼想法發生了什麼?
爲什麼列的先前存在對腳本有影響?
確定您運行第一個'兩批'..這一點有道理,但'第三批'如成功創建列後刪除它,然後運行原來的3行時間再次..它工作沒有錯誤。 – 2009-07-19 07:30:40