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

ajuda do gatilho do servidor sql - atualização da mesma tabela

create trigger [dbo].[test] on [dbo].[invoice]
for insert
as
begin

update Invoice
  set Trader_Status = 'OPEN'
  where Invoice_Id in ( select Invoice_Id from inserted where Invoice_Status = 'PENDING' )

update Invoice
  set Trader_Status = 'BLOCKED'
  where Invoice_Id in ( select Invoice_Id from inserted where Invoice_Status = 'OVERDUE' )

end

Observe que isso manipulará mais de uma linha sendo inserida por uma única instrução.