2012-02-10 18 views
4

私は別のカラムを追加したいプライマリキーを持つテーブルを持っています。問題は、これを追加すると、SQL Serverはそのテーブルへのすべての外部キー参照を削除することです。外部キー参照を削除せずにプライマリキーに追加

これを修正する方法はありますか? (あるいは、これをリファクタリングするツールさえ)?

+1

主キーフィールドを何とか変更していますか?それは正しいとは言えません。 – JohnFx

+0

@firebirdが複合pkeyを作成しようとしているようです。例えば。すでにpkeyがありますが、pkeyに別の列を追加して複合化するか、複合キーに別の列を追加する必要があります。 –

答えて

5

- あなたはPKを変更しているので、FKを削除する必要があります。

PKにフィールドを追加するとどうなると思いますか?すべてのFKリファレンスでもフィールドが追加されますか?余分なフィールドが他のテーブルに存在しない場合はどうなりますか?彼らは落とされ、そしてそれらが有効な参照であることを確かめるために再作成されなければなりません。

0

回避する方法はありません。外部キーは再定義する必要があります。たとえば、PKに列を追加する場合、既存のすべてのFKを再定義して、PKを構成する新しい列のセットを参照する必要があります。つまり、子テーブルに列を追加する必要があります。

このプロセスを自動化するツールがあるかどうかはわかりません。