1. ホーム
  2. sql-server

どのようにテーブルを変更すると、名前付きデフォルト制約と名前付き外部キー制約を持つ列が追加されますか?

2023-11-10 12:26:56

質問

2 つの既存のテーブル (TableA と TableB) があり、TableB への外部キーを持ち、NULL ではないデフォルト値を持つ新しい列を TableA に追加する必要があります。どうすればよいですか?

どのように解決するのですか?

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)