有两个表
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