既存のアプリケーションを含む 2 つのテーブル (MS SQL Server 2005) があります (インデックスなど以外の DB の変更は許可されていません)。
2 つのテーブルは次のとおりです。
ActivityDetails (Primary table)
ActivityDetailkey (Primary key)
SubActivities (Child table)
ActivityDetailKey (Refers to ActivityDetails)
現在、 には制約がありませSubActivities
んActivityDetailKey
。基本的に、ActivityDetail
各行には多くの行が存在する可能性がありSubActivities
、ユーザーが行を削除して孤立したActivityDetails
ままにすることを妨げるものは何もありません。SubActivities
アプリケーションには、これを防ぐ「ソフトロック」がいくつかあるはずでしたが、機能していないため、DB レイヤーにも整合性を向上させたいと考えていました。
しかし、SubActivities
のActivityDetailKey
列がUNIQUEではないため、外部キーを追加できないようです。
ActivityDetails
子供がいる場合に行を削除できないようにするにはどうすればよいですか?
ありがとう
編集
複雑で申し訳ありません。SubActivities
テーブルの実際の名前はTEDetailSubActivities
です。読みやすいように、質問でそれを変更しました。
とにかく、両方のテーブルの完全なスキーマの要点を次に示します。
https://gist.github.com/840479
助けていただければ幸いです。