1
여러 개의 Update/Inserts를 처리 할 TSQL 트리거를 만드는 방법을 연구했습니다.SQL 트리거 다중 삽입 업데이트
우리는 여러 소스에서 오는 데이터를 보유하고 있으며 업데이트/삽입하기 전에 해당 데이터를 확인/수정하는 것이 목표입니다.
데이터의 단일 행에 대해 작동하는 트리거를 작성했습니다.
여러 행의 데이터를 처리하는 방법을 알아 내려고 애 쓰고 있습니다.
CREATE TRIGGER [dbo].[tr_GPTitleToGov]
ON [dbo].[GoverningPersons]
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Title1 VARCHAR(15)
DECLARE @UBI VARCHAR(9)
DECLARE @ETPID CHAR(4)
DECLARE @Ident INT
SET @Title1 = (SELECT Title1 FROM INSERTED)
SET @UBI = (SELECT UBI FROM INSERTED)
SET @ETPID = (SELECT [ETPID] FROM [entity] WHERE @UBI = [entity].[UBI])
SET @Ident = (SELECT Ident FROM INSERTED)
IF ((@Title1 = 'Executor') OR (@Title1 = 'Incorporator'))
BEGIN
IF @ETPID IN ('0143', '0147', '0148', '0150', '0152', '0154')
UPDATE GoverningPersons
SET [Title1] = 'Executor',
[Title2] = NULL,
[Title3] = NULL,
[Title4] = NULL
WHERE Ident = @Ident;
ELSE
UPDATE GoverningPersons
SET [Title1] = 'Incorporator',
[Title2] = NULL,
[Title3] = NULL,
[Title4] = NULL
WHERE Ident = @Ident;
END
ELSE
UPDATE GoverningPersons
SET [Title1] = 'Governor',
[Title2] = NULL,
[Title3] = NULL,
[Title4] = NULL
WHERE Ident = @Ident;
END
나를 던지는 것은 필드에 가입하는 곳입니다. 그래서 다른 테이블의 데이터와 데이터를 비교할 수 있습니다.
이전에 트리거를 작성한 적이 없으므로 도움을 받으실 수 있습니다.
감사합니다. 지금 확인해 보겠습니다. –
사례 진술과 같은 것이 있는지 전혀 몰랐습니다. 이것은 최고입니다! –
@ E.Powell'CASE' _expression_은 값을 생성합니다. 'CASE' _statement_가 없습니다. 안타깝게도 Microsoft는이를 이해하지 못하고 "문서"에서 무작위로 용어를 사용합니다. – HABO