私は2つのテーブルを持っています:product
そしてUnproveProduct
製品が挿入されると、その新しい製品の 1 つの行が に挿入される必要がありますUnprovedProduct
。
どちらのソリューションが優れているか、またその理由は?
- 挿入後にトリガーを作成する
Product
- に行を挿入する手順で、
Product
次に行を挿入するUnprovedProduct
私は2つのテーブルを持っています:product
そしてUnproveProduct
製品が挿入されると、その新しい製品の 1 つの行が に挿入される必要がありますUnprovedProduct
。
どちらのソリューションが優れているか、またその理由は?
Product
Product
次に行を挿入するUnprovedProduct
私は#2を選びます。
なんで?
トリガーは煩わしいことで有名で、予期しない問題を引き起こす傾向があります.1つには、トリガーがいつどのように起動されるかを実際に制御することはできません....
データを挿入するプロシージャが既にある場合は、それを拡張して同時にProducts
行を追加します。UnprovedProduct
(トリガーと比較して) プロシージャーで行っていることをより適切に制御できます。
トリガーとして最適な使い方です。トリガーはそれほど不可解なものではなく、予測が難しいものでもありません。それらは単なるツールであり、非常に特定のルールに従います。この場合、レコードが挿入された直後にトリガーが実行されます。
挿入手順を延長することはできますが、次の人はそれを使用せず、レコードは適切に挿入されません。
CREATE TRIGGER Insert_UnProvedProduct ON Product ON AFTER INSERT AS BEGIN
INSERT INTO UnProvedProduct ( field1, field2, field3 ) SELECT field1, field2, field3 FROM INSERTED
終わり