1

テーブルに外部キーがあるレコードを編集するより速い方法があるかどうか誰かが知っていますか(SQLサーバーで)..私は説明します..私は独自のIDを持っているが外部キーを使用して一緒にリンクされている約5つのテーブルを持っています..。。

したがって、外部キー(私の場合は契約番号)を変更する必要がありましたが、各レコードを新しいレコードにコピーして、そのように編集する必要がありました...

契約番号を編集しようとすると、関連付けられているという標準エラーが発生し、外部キーなどに違反します。

確かにもっと良い方法があるに違いありませんか?

何か案は?

4

3 に答える 3

4

PKを変更してから、すべてのFksを更新することについて話しているのですか?その場合、カスケード更新を有効にします。これは削除と同じように自動的に実行され、カスケード削除を有効にします。

カスケードの削除について

他のテーブルの既存の行にある外部キーによって参照されるキーを持つ行を削除しようとすると、それらの外部キーを含むすべての行も削除されることを指定します。カスケード参照アクションもターゲット表で定義されている場合、それらの表から削除された行に対しても、指定されたカスケードアクションが実行されます。

更新カスケードについて

行のキー値を更新しようとした場合、そのキー値が他のテーブルの既存の行の外部キーによって参照されている場合、すべての外部キー値もそのキーに指定された新しい値に更新されることを指定します。参照アクションをカスケードする場合

于 2009-04-28T17:52:26.393 に答える
3

私はSQLの専門家ではありませんが、主キーが変更されたときに外部キーを自動的に更新するようにON UPDATE CASCADEのようなものを設定できませんか?

于 2009-04-28T17:50:55.120 に答える
0

または、整合性制約を無効にして、変更を加えて、制約を再度有効にしてみてください。基本的に、正しく実行しなかった場合、エラーが発生します(違反する制約を有効にすることはできません)。

于 2009-04-28T17:53:12.960 に答える