Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

T-SQL como modificar o valor antes de inserir


Basicamente, com um INSTEAD OF INSERT acionador, você pode conseguir o que está procurando - basta ler os dados do INSERTED pseudo tabela, modifique-a e insira-a na tabela

Então, seu gatilho ficaria mais ou menos assim:
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

Claro, você também pode adicionar, por exemplo, verifica na forma de WHERE cláusula para esse SELECT .... FROM INSERTED declaração para, por exemplo, ignore certas linhas - as possibilidades são infinitas!