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

Opret trigger for at indsætte en kolonneværdi i en anden kolonne i den samme tabel SQL Server 2005

Prøv denne trigger (den kopierer værdierne fra kolonne B til kolonne A, når der indsættes værdier i kolonne B, eller når værdierne fra kolonne B opdateres):

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

Jeg brugte denne tabel:

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. Sådan fjerner du en del af strengen i oracle

  2. postgresql - opdater trætabel med rækker fra samme tabel ved at ændre id andparent_id

  3. C# Mysql-forbindelse i txt-filkonfiguration

  4. Guide til designdatabase til opgavehåndtering i MySQL