SQL - триггер выбора в после обновления / вставки - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть таблица с именем Audit_Data, и время от времени появляется обновление. Каждое обновление состоит из примерно 300 строк (около 20 столбцов в строке), и все строки из одного и того же обновления совместно используют один и тот же Audit_ID.

У меня есть выборка, которая извлекает только те данные, которые актуальны для меня. Он в основном преобразует данные поля 300x20 в один ряд данных.
Есть ли способ создать триггер SQL , который будет выполнять выборку для обновленной таблицы Audit_Data и вставлять выбранные данные в таблицу с именем Audit_Final?

Это мое заявление о выборе, которое я использую для извлечения соответствующих данных:

SELECT main.Audit_ID
        ,main.Item_19
        ,main.Item_1
        ,main.Item_7
        ,main.Item_8
        ,Item_17
        ,main.Item_13
        ,macaddr.Item_2
        ,macaddr.Item_16
        ,t1.Item_1
FROM dbo.[Audit_Data] AS main
    LEFT JOIN
    (
        SELECT Audit_ID, Item_2, Item_16
        FROM dbo.[Audit_Data] AS macaddr
        WHERE 
        (Item_2 NOT LIKE 'Hyper-V%')
        AND (Item_17 = 'connected') 
        AND (Item_18 IN ('10000Mbps', '1000MBps') OR ITEM_9 IS NOT NULL AND ITEM_10 IS NOT NULL)
        AND (Item_18 != '100Mbps')
    ) macaddr ON main.Audit_ID = macaddr.Audit_ID
    LEFT JOIN
    (
        SELECT Audit_ID, Category_ID, Item_1, Record_ordinal
        FROM dbo.[Audit_Data] AS t1
        WHERE 
        Item_1 = 'Automatyczna konfiguracja sieci przewodowej' OR Item_1 = 'dot3svc' OR Item_1 = 'Wired AutoConfig'
        AND Item_3 = 'Running'
        AND Category_ID = '4100'
    ) t1 ON main.Audit_ID = t1.Audit_ID
WHERE 
main.Record_Ordinal = '2'
ORDER BY main.Audit_ID

1 Ответ

0 голосов
/ 13 ноября 2018

Основываясь на комментариях авторов, это то, что требуется здесь:

CREATE TRIGGER [TR_Audit_Data] ON [Audit_Data]
AFTER UPDATE
AS
 BEGIN
 INSERT INTO [Audit_Final](cloumn_1, colum_2, ... all columns you have on target table)
 /*
  Paste your select query here
 */
END
...