0

where 句で値が変更されたかどうかをチェックしない update ステートメントを受け取った場合、トリガー内でその更新を無視する別の方法は何ですか?

個々のフィールド (ISNULL 側も処理) を比較できることはわかっていますが、50 以上のフィールドを持つテーブルの場合、より高速で簡単な方法はありますか?

注:更新されたフィールドのログにすべてのイベントを保存したい.たとえば、50個のフィールドがあり、フィールドの1つが更新されます(テーブル全体ではなく単一行用)。更新されたフィールドの古い値のみを保存したいログの新しい価値。

前もってありがとう、ラフル

4

1 に答える 1

0

これがテーブルへの変更のログ記録に関するものである場合、より簡単なソリューションは、変更データ キャプチャ (CDC) テーブルを使用することです。

テーブルに変更が加えられるたびに、行が CDC テーブルに書き込まれます。その後、CDC テーブルに対してクエリを記述して、変更されたデータのみを取得できます。

CDC テーブルの詳細については、http://msdn.microsoft.com/en-us/library/bb522489(v=sql.105).aspx を 参照してください。

于 2013-03-20T09:16:07.103 に答える