テーブル内のフラグを更新するストアド プロシージャと、更新された行を削除して新しいテーブルに挿入するトリガーがあります。したがって、トリガーの同じ機能をストアド プロシージャに追加できます。だから私は知りたいだけです:
ストアド プロシージャとトリガーのどちらを使用するのが適切ですか? そして、どのような場合に?つまり、それぞれの長所と短所を教えていただけますか?
私は SQL Server 2008 を使用しており、VB.NET をデータベースに接続していることに注意してください。
テーブル内のフラグを更新するストアド プロシージャと、更新された行を削除して新しいテーブルに挿入するトリガーがあります。したがって、トリガーの同じ機能をストアド プロシージャに追加できます。だから私は知りたいだけです:
ストアド プロシージャとトリガーのどちらを使用するのが適切ですか? そして、どのような場合に?つまり、それぞれの長所と短所を教えていただけますか?
私は SQL Server 2008 を使用しており、VB.NET をデータベースに接続していることに注意してください。
特別なイベント (挿入、更新、削除) が発生した場合、トリガーはデータベースによって自動的に呼び出されます。ストアド プロシージャは、単純にユーザーが作成したデータベース関数です。この関数は、複雑な操作をグループ化するだけで、データベースの機能を拡張できます。ユーザーまたは外部プログラムは、この追加関数の呼び出しをトリガーする責任があります。
トリガーは、ストアド プロシージャを呼び出すことができます。
私のアドバイス...データベースからのイベントへの自動反応が必要な場合は、トリガーを使用してください。
手順を使用して、データベース コード内のコードの冗長性を回避します。
挿入トリガーがあり、テーブルが頻繁な挿入を期待しているとします。次に、挿入プロセスが遅くなります。一方、sp は、コマンドを実行しようとしているときにのみ実行されます。
どちらもSQLオブジェクトであるため、実行計画などの条件に違いはありません。
ただし、これも要件によって異なります。テーブルをリアルタイムで更新する場合はトリガーを使用し、データを一貫した状態にするために 1 時間または 2 時間待つ余裕がある場合は SP を使用します。
幸運を