75

2つの既存のテーブル(TableAとTableB)があり、TableBへの外部キーを持ち、デフォルト値がnullではない新しい列をTableAに追加する必要があります...これらの制約は両方とも名前を付ける必要があります。これどうやってするの?

4

1 に答える 1

133

1つのステートメントに両方の制約を追加するのは思ったほど簡単ではなく、例もあまりなかったようです(少なくとも、簡単に見つけることができなかったため)。私がここでそれをどのようにしたかを共有してください、そして多分誰かがより良い方法を提案することができますか?

ALTER TABLE [table name] ADD
    [New Column Name] [Column Type] 
    CONSTRAINT [constraint name] DEFAULT ([default value]) NOT NULL,
    CONSTRAINT [constraint name] FOREIGN KEY ([New Column Name]) 
    REFERENCES [Other Table] ([Foreign ID])

例:

ALTER TABLE tableA ADD
    myNewColumn BIGINT 
    CONSTRAINT myNamedConstraint_df default (1) NOT NULL,
    CONSTRAINT myNamedConstraint_fk FOREIGN KEY (myNewColumn)
    REFERENCES tableB (tableBPrimaryKeyID)
于 2012-10-23T14:58:49.673 に答える