sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server 2008 - On Insert/Update Trigger, der kopierer værdier til en anden tabel?

Ganske enkelt...

CREATE TRIGGER TRG_Tasks_UI ON Tasks FOR INSERT,UPDATE
AS
SET XACT_ABORT, NOCOUNT ON

--Ignore zero row updates, inserts
IF NOT EXISTS (SELECT * FROM INSERTED) RETURN;

BEGIN TRY
    INSERT TasksHistory
       (col1, col2, ...)
    SELECT
       I.*
    FROM
       INSERTED I
       LEFT JOIN
       DELETED D ON I.key = D.Key
    WHERE
       D.Key IS NULL --insert only
       OR -- need null handling here
       I.col1 <> D.col1 OR I.col2 <> D.col2 OR ...;
END TRY
BEGIN CATCH
   IF XACT_STATE() <> 0 ROLLBACK TRANSACTION
    RAISERROR [rethrow caught error using @ErrorNumber, @ErrorMessage, etc]
END CATCH
GO



  1. Sådan indstilles multi select-værdi fra array-objekt i yii2 under opdatering

  2. Gem følsomme data i Silverstripe 3.1

  3. Forståelse af ydeevnepåvirkninger for mysql tuple-søgning

  4. Begrænsning af parallelle/samtidige downloads - Hvordan ved man, om download blev annulleret?