2011-10-26 4 views
0

私はテーブル1を持っており、spのを介してデータを更新して挿入しています。挿入/更新が別のトリガから来たかどうかを検出しますか?

更新は行のID(一括更新ではありません)です - 私は - Single updateを意味します。

このテーブルには、更新された同じレコードの一部のフィールドを更新する、Tg1があります。

I DONT HAVE ACCESS to TG1 !. 

このテーブルには、Tg2をを構築アイブ別のトリガーを持っています - (デシベルに更新されたレコードの後に​​TG1は、彼女のいくつかのフィールドを更新します)。 SELECT * FROM DELETED ... and insert to table Archive...

を経由して、問題を元挿入されたレコードをアーカイブ はTg2をキャッチalsoTG1のイベントということです! ? - アクションがTg1をから来たことを知っている()TG2にとにかくあります(私はこれらのイベントを避けることができるだろう:(その3レコードが1

質問のinstedアーカイブテーブルに挿入します私はSPから来たイベントのみを必要とするので。)

どのように私はそれを解決できますか?(私は... TG1へのアクセス権を持っていけない)

+0

あなたの最初の問題は、トリガshoujldは、1つの行だけが挿入/削除/変更されるという仮定で書かれていないことです。 – HLGEM

+0

@HLGEM、どうすれば解決できますか? –

+0

そのqwuestionに答えるには、私はトリガーを見なければならないでしょう。しかし、スカラー変数に何も設定してはならず、代わりにセットベースのステートメントを使用してください。また、1つのレコードの更新と複数のレコードの更新の両方でテストします。 – HLGEM

答えて

0

なぜあなたは最終的にそれとして、レコードをアーカイブしたいとは思わないでしょうテーブルに存在しますか?

ただし、あなたのトリガーを最初に起動させる順序は、 sp_settriggerorderです。オンラインで書籍を検索する方法。

+0

ありがとうございます。私は注文部分を検索します。 p.s. :別のテーブルへのバックアップはバージョン管理用です...時間の経過とともにスナップショットが必要になります。「1年前に移動して、同じレコードがどのように見えるか教えてください....」 –

関連する問題