2009-04-28 9 views
1

誰かが知っているかどうかは、テーブル(SQL Serverの)テーブル内の外部キーを持つレコードを編集する..私は説明します..私は約5テーブルを持っているが、独自のIDを持って一緒にリンクされている外部キー...のよう外部キーを持つテーブル(SQL Server)のレコードを変更しますか?

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

私が契約番号を編集しようとすると、関連する標準エラーが出て、外来キーなどに違反します。

もっと良い方法がありますか?

アイデア?

答えて

3

あなたはPKを変更してすべてのFksを更新することについて話していますか?その場合、あなたは指定カスケードDELETE CASCADE

ON

を削除可能、カスケード更新を有効にして、これは削除して自動的に 同じ行われますよう試みは、外部キーが参照するキーを持つ行を削除するためになされた場合他の表の既存の行では、これらの外部キーを含むすべての行も削除されます。カスケード参照アクションもターゲット表に定義されている場合、指定されたカスケーディング・アクションは、それらの表から削除された行に対しても実行されます。 UPDATEのCASCADE

ON

は試行がキー値が他のテーブル内の既存の行の外部キーによって参照される行のキー値を更新するために行われた場合、外部キーの値の全てであることを指定しキーに指定された新しい値にも更新されます。カスケード参照操作の場合

+0

あなたの助けてくれてありがとう、私はudpateカスケードを使用するつもりですが、私はおそらく私の外来キーを再編成する必要があると思う –

3

私はSQLのエキスパートではありませんが、プライマリキーが変更されたときに自動的に外部キーを更新するようにON UPDATE CASCADEのような設定はできませんか?

0

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

関連する問題