Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

T-SQL comment modifier la valeur avant l'insertion

En gros, avec un INSTEAD OF INSERT déclencheur, vous pouvez obtenir ce que vous recherchez - il suffit de lire les données de INSERTED pseudo table, modifiez-la et insérez-la dans la table

Votre déclencheur ressemblerait donc à ceci :

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

Bien sûr, vous pouvez également ajouter par ex. vérifie sous la forme WHERE clause à ce SELECT .... FROM INSERTED déclaration à par ex. ignorez certaines lignes - les possibilités sont infinies !