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

T-SQL come modificare il valore prima dell'inserimento

Fondamentalmente, con un INSTEAD OF INSERT trigger, puoi ottenere ciò che stai cercando:basta leggere i dati da INSERTED pseudotabella, modificala e inseriscila nella tabella

Quindi il tuo trigger sarebbe simile a questo:

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

Naturalmente, potresti anche aggiungere ad es. controlli sotto forma di WHERE clausola a quel SELECT .... FROM INSERTED dichiarazione ad es. ignora alcune righe:le possibilità sono infinite!