アプリケーションに2つのテーブルがあります(バグトラッカーを作成しようとしています)。 1つはレコード/問題を追加でき、もう1つは問題の履歴です。変更/監査履歴用にSQL Serverにトリガを挿入
したがって、2番目の(Bugs_Shadow)テーブルは新しいレコードを最初のバグ(Bugs)と共に作成し、誰かが修正を試みたときにテーブル1の問題を更新できます。更新をクリックすると、更新行全体が2番目の表に追加されますが、元のレコードも保持されます。したがって、変更が行われるたびにBugs_Shadowテーブルに新しいレコードが作成されます。私はそれが理にかなってほしいのですか
私はこのトリガーを作成しました:
CREATE TRIGGER [tr_Bugs_Insert]
ON [dbo].[Bugs]
AFTER UPDATE, INSERT
AS
BEGIN
INSERT INTO Bugs_Shadow (BugID, [User], Date, Subject, Description, [Source Code], [Current State])
SELECT BugID, [User], Date, Subject, Description, [Source Code], [Current State]
FROM Bugs
END
GO
それは、これまでに2回目の表に、同一のエントリを作成するように動作しますが、私は第一テーブルのエントリを更新するとき、それは第二に同じことを行い一方私は、ユーザーが行った変更とは別に新しいレコードを作成したいと思っています。
そこにいくつかの助けがありますように。それは私の最初の試みであり、この段階に入るまでには時間がかかりました。あなたがここにトリガーする必要が
おかげ
迅速な対応をありがとうございます。しかし、私は次のエラーが表示されます。SQL80001: 'BEFORE'の近くに構文が正しくありません。何か案は? –
私は悪いですが、MS SQLはBEFOREトリガーをサポートしていません。 'AFTER'と 'BEFORE'ではないと予期しています。 –
私の更新された答えを見る – Kenneth