SQL Serverを取得2005は、SQLテーブルのスクリプトに非NULL列を追加します - エラー
Is_Active列が以前にDim_Formテーブルに存在していた場合は、エラーのないSQL作業の3行を次のよう。
つまり、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
私はこのエラーを取得する場合にのみ、そのA 'ブランドの新しい' 欄
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
は、今私は成功したSQLの元の3行を実行することができます実行する場合 - これで何が起こっているのでしょうか?
なぜ以前の列の存在がスクリプトに影響しますか?
それは間違いなく動作します。 –
「3番目のバッチ」では、Is_Active列を削除して3本の元の行を実行します。バッチが解析されるとき、Is_Active列は存在しなくても存在しますが、パーザはバッチを解析する時点でSQL Serverの状態をすべて見ることができるため、その行は表示されません。 –
okありがとうございますが、Is_Active列は削除後もまだどこにありますか?私は列を削除し、接続を閉じて、新しいクエリウィンドウを開き、元の3行を実行し、彼らはまだ動作します。 –