SQLServer2008データベースがあります。それに接続されている3つの端子(A、B、C)があります。SampleTable
データベースには、端末のアクティビティに反応するテーブルがあります。このDBにログオンしている端末で何らかのアクティビティが発生するたびに、新しい行がに挿入されSampleTable
ます。
3つの端末のうちの1つからのトラフィックを、SampleTableではなくRealTableテーブルに書き込むようにリダイレクトしたいのですが、端末アクティビティをDBに書き込むサービスはブラックボックスにあるため、DBレイヤーでこれを行う必要があります。
リダイレクトロジックで動作しているトリガーがすでにいくつかありますSampleTable
が、問題は、行がまだに挿入されていることSampleTable
です。
このための最もクリーンなソリューションは何ですか。挿入トリガーで行を削除することは、悪いこと、悪いこと、悪いことだと確信しています。
助けてください。
編集:
現在のロジックは次のようなものです(これは擬似コードです)。
ALTER TRIGGER DiffByTerminal
ON SampleTable
AFTER INSERT
AS
DECLARE @ActionCode VARCHAR(3),
@ActionTime DATETIME,
@TerminalId INT
SELECT @ActionCode = ins.ActionCode,
@ActionTime = ins.ActionTime,
@TerminalId = ins.TerminalId
FROM inserted ins
IF(@TerminalId = 'C')
BEGIN
INSERT INTO RealTable
(
...
)
VALUES
(
@ActionCode,
@ActionTime,
@TerminalId
)
END