sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2008 - På Insert/Update Trigger som kopierar värden till en annan tabell?

Ganska 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. SQL-fråga där fältet INTE innehåller $x

  2. Hur man ansluter till mysql från C# över SSH

  3. Orsakas av:java.sql.SQLException:Teckenkodningen 'utf8mb4' stöds inte

  4. SQL distinkta flera kolumner