15
メッセージ207、レベル16、状態1、行10無効な列名 ':
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
は、次のエラーメッセージを生成しますNewFieldName '。
私は何か基本的なものが欠けていると確信していますが、変更後に "GO"を入れようとすると、毎回UPDATEが実行され、それをやりたくありません。
このステートメントを構造化して、列が存在するかどうかを確認し、それが追加されていないかどうかを確認してから、UPDATEステートメントのように値を設定する方法はありますか?
最初の更新文は冗長です。すべてのレコードを 'default(2) 'で設定します。 –
上記の文が私のために働きました。あなたはどのようにそれらを実行していますか?列 'NewFieldName'が作成されていますか? –
@AmirIsmailが間違っています。 ALTER文を実行すると、フィールドが作成されますが、既定値は既存のレコードに設定されません。たぶん、それを行うためにALTERを書く別の方法があります。現在の構造は既存の行のデフォルト値を設定しません。 – ray