触发sql server,两个表

时间:2017-10-12 01:48:27

标签: sql sql-server

大家好我想问你是否有办法创建一个触发器,当另一个人重新开始一个新行时更新一个表。 谢谢!

3 个答案:

答案 0 :(得分:0)

绝对可以。

create trigger tblTriggerAuditRecord on tblOrders
after update, insert
as
begin
  insert into tblOrdersAudit 
  (OrderID, OrderApprovalDateTime, OrderStatus, UpdatedBy, UpdatedOn )
  select i.OrderID, i.OrderApprovalDateTime, i.OrderStatus, SUSER_SNAME(), getdate() 
  from  tblOrders t 
  inner join inserted i on t.OrderID=i.OrderID 
end
go

来源:https://www.mssqltips.com/sqlservertip/4055/create-a-simple-sql-server-trigger-to-build-an-audit-trail/

参考资料:link / link

作为附注,请在此处发表问题之前进行研究,这是一个相当基本的问题,可以通过快速Google搜索来解答。

答案 1 :(得分:0)

这可以像下面这样做:

CREATE TRIGGER Modify_Table_Trg
ON TableA
   AFTER INSERT
AS
BEGIN
    UPDATE t
    SET    ColumnA = i.SomeColumn
    FROM   TableA t
           INNER JOIN INSERTED i
                ON  t.PrimaryKeyColumn = i.PrimaryKeyColumn
END 

答案 2 :(得分:0)

您可以为要插入的表编写一个插入后触发器并使用'Inserted'表,您可以更新第二个表

create trigger UDT_Tab1Trigger on Tab1
after insert
as
begin
  update Tab2
  set col21=INSERTED.col11,
     col22 = INSERTED.col12
 FROM INSERTED
 WHERE Tab2.Id= INSERTED.Id 
end
go