sql >> Databasteknik >  >> RDS >> Sqlserver

Skapa utlösare för att infoga ett kolumnvärde i en annan kolumn i samma tabell SQL Server 2005

Prova den här utlösaren (den kopierar värdena från KolumnB till KolumnA när värden infogas i KolumnB eller när värdena från KolumnB uppdateras):

CREATE TRIGGER trgIU_triggertestTable_UpdateColumnAWhenColumnB
   ON  dbo.triggertestTable
   AFTER INSERT,UPDATE
AS 
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    IF UPDATE(ColumnB)
    BEGIN
        UPDATE  dbo.triggertestTable
        SET     ColumnA=i.ColumnB
        FROM    inserted i
        INNER JOIN dbo.triggertestTable t ON i.MyID=t.MyID
        LEFT JOIN deleted d ON i.MyID=d.MyID
        WHERE   d.MyID IS NULL AND i.ColumnB IS NOT NULL -- Row was inserted
        OR      d.MyID IS NOT NULL -- Row was updated
    END
END
GO

Jag använde den här tabellen:

CREATE TABLE dbo.triggertestTable(
    MyID INT IDENTITY(1,1) PRIMARY KEY, -- MyID should be a PRIMARY KEY or a mandatory(NOT NULL) UNIQUE constraint
    ColumnA VARCHAR(100),
    ColumnB VARCHAR(100)
);
GO


  1. Odefinierat index:REMOTE_ADDR medan Laravel migrerar

  2. Hur arbetar jag med decimaler med hög precision i PHP

  3. Hur reparerar korrupta xampp 'mysql.user'-tabellen?

  4. Hur man beräknar skillnaden mellan två tidsstämplar i SQLite