내가 아니라고 100 % 명확 ,하지만 네가 찾고있는 것 같아. omething이 같은 :
CREATE TRIGGER dbo.TableA_Update
ON dbo.TableA
FOR UPDATE
AS
BEGIN
UPDATE TableB
SET Desc3 = i.Desc1,
Desc4 = i.Desc2
FROM TableB b
INNER JOIN inserted i
ON i.ID_AA = b.ID_BA -- MATCH CRITERIA IN QUESTION
AND i.Status = 'success' -- NEW STATUS IS "SUCCESS"
INNER JOIN deleted d
ON d.ID_AA = i.ID_AA
AND d.Status != 'success' -- PREVIOUS STATUS WAS NOT "SUCCESS"
END
편집
당신이 MERGE
CREATE TRIGGER dbo.TableA_Update
ON dbo.TableA
FOR UPDATE
AS
BEGIN
;WITH Updated AS
( SELECT i.ID_AA, i.Desc1, i.Desc2
FROM inserted i
INNER JOIN deleted d
ON d.ID_AA = i.ID_AA
AND d.Status != 'success' -- PREVIOUS STATUS WAS NOT "SUCCESS"
WHERE i.Status = 'success'
)
MERGE INTO TableB USING Updated ON ID_AA = ID_BA
WHEN MATCHED THEN
UPDATE
SET Desc3 = Desc1,
Desc4 = Desc2
WHEN NOT MATCHED THEN
INSERT (ID_BA, Desc3, Desc4) VALUES (ID_AA, Desc1, Desc2);
END
그리고 무엇을 당신이 지금까지 시도 사용을 고려할 수 있습니다
TableB
에 대응하는 행이없는 경우? –이 오류가 발생합니까 아니면 그냥 시작되지 않습니까? – Jesse