0
這是一個觸發器,用於在將文檔的元數據行添加到表時添加頁數。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表,使用DOCID從該表中的對象(PVDM_OBJS_1234_13)表匹配相同DOCID檢索的網頁值,然後插入到DOCINDEX13(我們正在存儲用戶可見頁數的字段),其中DOCINDEX13爲空。
如果將一批5行或500行插入到PVDM_DOCS_1234_13中,則插入的最後一個永遠不會插入頁計數,它仍然爲NULL。其餘的都會插入頁碼。無法弄清楚爲什麼最後一行總是被拋在後面。
注意我是一個SQL新手,這是由不再可用的人編寫的。
任何想法,爲什麼這將適用於除最後一個插入的所有新行?
謝謝!