2009-04-21 17 views
0

SQL Server 2005でこれを回避する方法はありますか?SQL Server 2005 - カスケード削除による外部キー

(これは私が遭遇するたびに突然発生します。 )

DimensionTable:
IDのINTのIDENTITY(1,1)

FactTable:

SOURCE_IDのINT NULL NOT、
TARGET_IDのINT NULL NOT

"Fact.source_id"から "Dimension.id"に外部キーを作成し、カスケード削除とカスケード更新で設定しました。

「Fact.target_id」で同じことを試みたとき、カスケードのパスが複数あるため、「ああ、いいえ、いいえ」というエラーが表示されました。

ここには他の外部キーは含まれていませんが、作成したいのは2つだけです。私はカスケードなしで2番目の外部キーを作成することができますが、それは私にとっては非常にうんざりです。手作業で管理される一連のテーブルです(ごくまれに触れるので、クライアントはこれを行うためにGUIを支払うことはありません)。このようなカスケード削除/更新は非常に便利ですが、それが両方のフィールドにある場合。 (私は一貫性のための吸盤だ)

は****あなたが唯一のカスケードは1つの関係から削除することができますウインパー****

答えて

1

はい、INSTEAD OFトリガーを使用します。それはDELETEコマンドをインターセプトし、それに応じてロジックを指示することができます。

0

。トリガーでこれを設定することをお勧めします。

関連する問題