2009-07-09 10 views
2

KB321843this questionで記述されている問題が発生しています。私は2008年にはMS SQL Server 2005(またはそれ以前)についてしか話しません。ON DELETE CASCADEを使用した複数のFKを同じテーブル(MSSQL2008)

これは最近のバージョンでは修正されることを本当に期待していましたが、それはそうではないようです。誰かがこれを確認することができますか(または、私がそれを働かせる方法を教えてください)?

答えて

0

固定することはできません。

1つのカスケードをからに指定した場合は、テーブルがNULL、別のものがDELETEです。どのように解決できますか?

私は同じエラーが発生しましたが、私はトリガーを使用して削除を制御することにしました。

+1

私が望むセマンティクスは非常に簡単です。別のテーブルにN:Mの自己参照があります。このテーブルには元のテーブルに2つのFKがあり、 "メイン"テーブルのエントリの1つを削除すると、他のアイテムへの接続は必要ありません。 NULLとDELETEが混在している場合でも、直接的な実装が可能です。たとえば、Postgres 8.1ではこのユースケースには全く問題はなく、TOTALLYは期待どおりに動作します。 –

+0

Postgresは何をしていますか? – gbn

+0

接続テーブル(X、Y)を指定します.XはON DELETE CASCADEを指定し、YはON DELETE SET NULLを指定し、タプル(3,2)と(2,3)を含みます。参照先のテーブルでid = 3のタプルを削除した後、接続テーブルには(2、NULL)が含まれます。他に何がすべきか? –

関連する問題