sql >> Databáze >  >> RDS >> Sqlserver

update trigger pro aktualizaci záznamů v jiné tabulce

Potřebovali byste něco takového – založené řešení, které to bere v úvahu v UPDATE je možné, že aktualizujete více řádků najednou, a proto se váš spouštěč také musí zabývat více řádky v Inserted a Deleted tabulky.

CREATE TRIGGER [dbo].[updateUserId] 
ON [dbo].[User_TB]
FOR UPDATE
AS 
    -- update the "Break" table - find the rows based on the *old* User_Id
    -- from the "Deleted" pseudo table, and set it to the *new* User_Id
    -- from the "Inserted" pseudo table
    SET User_Id = i.User_Id 
    FROM Inserted i
    INNER JOIN Deleted d ON i.TID = d.TID
    WHERE
        Break_TB.User_Id = d.User_Id

    -- update the "Log" table - find the rows based on the *old* User_Id
    -- from the "Deleted" pseudo table, and set it to the *new* User_Id
    -- from the "Inserted" pseudo table
    UPDATE Break_TB 
    SET User_Id = i.User_Id 
    FROM Inserted i
    INNER JOIN Deleted d ON i.TID = d.TID
    WHERE
        Break_TB.User_Id = d.User_Id

Tento kód předpokládá že TID ve sloupci User_TB tabulka je primární klíč který zůstává stejný během aktualizací (abych mohl spojit "staré" hodnoty z Deleted pseudo tabulka s "novými" hodnotami po aktualizaci, uložená v Inserted pseudo tabulka)




  1. Proč se můj php kód nepřipojuje k mé vzdálené databázi MySql?

  2. Jak změním svou stávající tabulku, abych vytvořil oblast rozsahu v Oracle

  3. Nalezeno 'OR 1=1/* sql injection v mé databázi newsletteru

  4. Předávání FieldName jako parametru v MySQL uložené proceduře