sql >> Base de Datos >  >> RDS >> Sqlserver

T-SQL cómo modificar el valor antes de insertar

Básicamente, con un INSTEAD OF INSERT disparador, puede lograr lo que está buscando:simplemente lea los datos del INSERTED pseudo tabla, modifíquela e insértela en la tabla

Así que tu disparador se vería así:

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

Por supuesto, también podría agregar, p. cheques en forma de WHERE cláusula a ese SELECT .... FROM INSERTED declaración a, p. ignore ciertas filas:¡las posibilidades son infinitas!