Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

T-SQL, wie der Wert vor dem Einfügen geändert wird

Im Grunde mit einem INSTEAD OF INSERT Trigger, können Sie erreichen, wonach Sie suchen - lesen Sie einfach die Daten aus INSERTED aus Pseudo-Tabelle, ändern Sie sie und fügen Sie sie in die Tabelle ein

Ihr Trigger würde also etwa so aussehen:

CREATE TRIGGER YourTrigger ON dbo.YourTable    
INSTEAD OF INSERT
AS
    SET NOCOUNT ON

    -- do the INSERT based on the INSERTED pseudo table, modify data as needed
    INSERT INTO dbo.YourTable(Col1, Col2, ....., ColN)
      SELECT 
          Col1, 2 * Col2, ....., N * ColN
      FROM 
          INSERTED

Natürlich könnte man auch z.B. Prüfungen in Form von WHERE Klausel zu dieser SELECT .... FROM INSERTED Aussage zu z.B. Ignorieren Sie bestimmte Zeilen - die Möglichkeiten sind endlos!