当前位置: 代码迷 >> Sql Server >> 请问, 这个触发器怎么创建? 多谢
  详细解决方案

请问, 这个触发器怎么创建? 多谢

热度:94   发布时间:2016-04-24 09:15:11.0
请教, 这个触发器如何创建? 谢谢
有两个表
Outed表:
detilid, customid, kindof
111, 33301, 44444
111, 33301, 44400

Orders表:
detilid, customid, idd
111, 33301, 44444
111, 33301, 44400

把Outed表中的44444变成5555后, Orders表中的44444也相应地变成5555
Outed表:
detilid, customid, kindof
111, 33301, 5555
111, 33301, 44400

Orders表:
detilid, customid, idd
111, 33301, 5555
111, 33301, 44400

由于表中记录数很多, 不敢贸然行事. 请问我下面的触发器对不对? 谢谢

USE [sofa]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
Create TRIGGER [dbo].[KindIdd] ON [dbo].[outed] 
After update
AS
Begin
declare @P1 int, @P2 int, @P3 int
select @P1=detilid, @P2=customid, @P3=kindof from updated
If update(kindof)
update orders set idd=@P3 where (detilid=@P1 and customid=@P2 and idd=@P3) 
End
Go

------解决思路----------------------
CREATE TRIGGER tr_uOuted ON Outed
FOR UPDATE
AS
begin

UPDATE o
SET Idd=i.kindof
FROM    INSERTED AS i
        INNER JOIN Orders AS o ON i.detilid = o.detilid
                                  AND i.customid = o.customid
        INNER JOIN DELETED AS d ON d.detilid = o.detilid
                                  AND d.customid = o.customid
                                  AND d.kindof=o.Idd
end
  相关解决方案