データベースに2つのテーブルがあります。 表1 '受注明細'および表2 '受注'です。 'オーダー'は、0以上の 'オーダーID'を持つことができます。 主キーをリンクするFK制約を定義しました:OrderIdとOrderItemIdとDeleteRuleを 'Cascade'に設定しました。 これにより、Orderを削除するとすべてのOrderItemが削除されます。SQL Serverで1対1の関係を強制
私が避ける必要があるのは、空の注文です。注文がAT LEAST OrderItemであることを確認する必要があります。それ以外の場合は、最後にリンクされたOrderItemが削除されると自動的に自動的に削除されます。私はもちろん、私のアプリでこれをチェックすることができますが、理想的にはDBはこれに対処することができます。
私はORMとしてMS SQL Server 2008とEntity Frameworkを使用しています。
ありがとうございます!
削除トリガーはDeleteの場合にのみ起動しますか?または@Dave Andersonが以下に示唆するように、すべての変更で発生しますか? – santiagoIT
@santiagoIT:挿入、更新、および削除のためにトリガするトリガを定義できます。 –
トリガーを削除すると、削除されたレコードのデータを簡単に認識できますか?たとえば、2年以上経過したすべてのOrderItemsを削除した場合、トリガーは対応するOrderIDを識別できますか、または0人の子供のすべてのOrdersをチェックする必要がありますか? –