私は2つの既存のテーブル(TableAとTableB)TableBへの外部キーを持ち、デフォルト値がnullでないTableAに新しい列を追加する必要があります。これらの両方の制約に名前を付ける必要があります。これどうやってするの?
回答:
回答№1の841つのステートメントに両方の制約を追加することはありませんでした私はそれがそうであると思ったように簡単なものでした。そこには多くの例があるようでした(少なくとも私は非常に簡単に見つけることができませんでした)ので、私はここで、より良い方法を提案できますか?
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)
回答№2の場合は0
私はSQL Server Management Studioの2つの部分でそれを行いました。
ALTER TABLE MyTable
ADD MyId uniqueidentifier DEFAULT (NEWID())
その後、私は手動でGUIDを実際に新しい列に入れるべきものに変更しました。次に、私は外部キー制約を追加しました。
ALTER TABLE MyTable
ADD FOREIGN KEY (MyId )
REFERENCES OtherTable(Id)