7

テーブル内のフラグを更新するストアド プロシージャと、更新された行を削除して新しいテーブルに挿入するトリガーがあります。したがって、トリガーの同じ機能をストアド プロシージャに追加できます。だから私は知りたいだけです:

ストアド プロシージャとトリガーのどちらを使用するのが適切ですか? そして、どのような場合に?つまり、それぞれの長所と短所を教えていただけますか?

私は SQL Server 2008 を使用しており、VB.NET をデータベースに接続していることに注意してください。

4

2 に答える 2

8

特別なイベント (挿入、更新、削除) が発生した場合、トリガーはデータベースによって自動的に呼び出されます。ストアド プロシージャは、単純にユーザーが作成したデータベース関数です。この関数は、複雑な操作をグループ化するだけで、データベースの機能を拡張できます。ユーザーまたは外部プログラムは、この追加関数の呼び出しをトリガーする責任があります。

トリガーは、ストアド プロシージャを呼び出すことができます。

私のアドバイス...データベースからのイベントへの自動反応が必要な場合は、トリガーを使用してください。

手順を使用して、データベース コード内のコードの冗長性を回避します。

于 2013-09-09T09:07:58.917 に答える
1

挿入トリガーがあり、テーブルが頻繁な挿入を期待しているとします。次に、挿入プロセスが遅くなります。一方、sp は、コマンドを実行しようとしているときにのみ実行されます。

どちらもSQLオブジェクトであるため、実行計画などの条件に違いはありません。

ただし、これも要件によって異なります。テーブルをリアルタイムで更新する場合はトリガーを使用し、データを一貫した状態にするために 1 時間または 2 時間待つ余裕がある場合は SP を使用します。

幸運を

于 2013-09-09T09:06:21.530 に答える