sql >> Databasteknik >  >> RDS >> Sqlserver

T-SQL hur man ändrar värdet före infogning

I grund och botten, med en INSTEAD OF INSERT trigger, kan du uppnå det du letar efter - läs bara upp data från INSERTED pseudotabell, ändra den och infoga den i tabellen

Så din trigger skulle se ut ungefär så här:

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

Naturligtvis kunde man även lägga till t.ex. kontroller i form av WHERE sats till den SELECT .... FROM INSERTED uttalande till t.ex. ignorera vissa rader - möjligheterna är oändliga!




  1. Konvertera datum till MYSQL datumformat

  2. Hur man använder SQL Server AlwaysOn-funktioner

  3. sök data från html-indata i mysql

  4. SugarCRM - Databasfel - Radstorlek för stor?