문서의 메타 데이터 행을 테이블에 추가 할 때 페이지 수를 추가하는 데 사용되는 트리거입니다.SQL 트리거가 마지막으로 일치하는 행을 그대로 둡니다.
USE [DD1234]
GO
/****** Object: Trigger [dbo].[AfterIns_Pages_ABC_LandCont] Script Date: 10/02/2014 16:30:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[AfterIns_Pages_ABC_LandCont]
ON [dbo].[PVDM_DOCS_1234_13]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
UPDATE D
SET D.DOCINDEX13 = O.Tot_Pages
FROM dbo.PVDM_DOCS_1234_13 D,
(SELECT DOCID, Sum(PAGES) AS Tot_Pages FROM dbo.PVDM_OBJS_1234_13
GROUP BY DOCID) O
WHERE D.DOCID = O.DOCID
AND D.DOCINDEX13 IS NULL
END
GO
행이 (또는 많은)에 PVDM_DOCS_1234_13 테이블에 추가 그러니까 기본적으로 후, 페이지 값을 검색 (PVDM_OBJS_1234_13) 테이블 개체에 같은 DOCID에 맞게 해당 테이블에서 DOCID을 사용하고 삽입 DOCINDEX13 (사용자가 볼 수있는 페이지 수를 저장하는 필드)에 DOCINDEX13이 null 인 경우.
5 또는 500 행의 배치를 PVDM_DOCS_1234_13에 삽입하면 마지막으로 삽입 된 페이지 수가 삽입되지 않고 NULL로 유지됩니다. 나머지는 삽입 된 페이지 수를 얻습니다. 왜 마지막 행이 항상 뒤쳐져 있는지 알 수 없습니다.
참고 저는 SQL 초보자입니다. 더 이상 제공되지 않는 사람이 작성했습니다.
삽입 된 마지막 행을 제외한 모든 새 행에 대해 이것이 작동하는 이유는 무엇입니까?
감사합니다.