トリガーに関する私の知識は非常に貧弱です。
列名(A1,A2,A3,A4,A5,A6)
を使用してtableA
にINSERT/UPDATE/DELETEトリガーを作成したい。トリガーが起動した後、少なくとも2つの異なる列名(B1, B2, A3, A4, A5, A6)
を使用して、そのデータをtableB
に配置します。
基本的にtableA
に変更がある場合、その変更はそれぞれの列のtableB
、つまりA1-> B1、A2-> B2、A3-> A3のようになります。
誰かが可能であればこれを手伝ってくれませんか?
以下は、INSERTトリガーを作成する方法のスニペットです。 UPDATEは非常によく似ており、DELETEはその処理方法に依存します。すべてのトリガーについて詳しく理解するには、create tableステートメントが必要です。
トリガーは、T-SQLであり、多少のロジックは多かれ少なかれ結び付けられています。では、AからBにデータを取得して名前を変更するにはどうすればよいでしょうか。以下に例を示します。
CREATE TABLE TableA (A1 INT
, A2 INT
, A3 INT
, A4 INT
, A5 INT
, A6 INT);
CREATE TABLE TableB (B1 INT
, B2 INT
, A3 INT
, A4 INT
, A5 INT
, A6 INT);
GO
CREATE TRIGGER TriggerTest
ON TableA
AFTER INSERT
AS
BEGIN
INSERT INTO TableB (B1
, B2
, A3
, A4
, A5
, A6)
SELECT i.A1
, i.A2
, i.A3
, i.A4
, i.A5
, i.A6
FROM inserted i;
END;
GO
INSERTしたい列とSELECT句を一致させています。SQLは、INSERTとSELECTの順序と宣言のために、A1がB1に入ると認識しています。必要に応じて、後でエイリアスを使用することもできます。以下の例をご覧ください。
SELECT 1 AS 'FakeNumber';
SELECT 1 AS 'NewColumnName';
また、トリガーは役立つだけでなく非常に危険な場合もあります。注意して使用してください。 QAとテストを使用して開発をリンガーに通し、慎重に本番環境に伝播します。そしていつものように、仕事に最適なツールを使用していることを評価してください。すべての問題が釘であるとは限らず、すべての解決策がハンマーであるとは限りません。