我有物理表持有標識,以及插入,刪除,更新數據的時間 並有我的觸發器附加(插入,更新和刪除後)與基表。它是一種跟蹤。從插入和刪除獲取更新的數據
插入的記錄和刪除的記錄都很好,但問題是我沒有在基表中獲取更新記錄的任何記錄! 記錄在插入和刪除兩個。
如果我在這裏缺少任何東西,請幫助我。
觸發插入和更新操作:
CREATE TRIGGER [dbo].[trArticleAttachmentTrack]
ON [dbo].[ArticleAttachment]
AFTER INSERT, UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
SET NOCOUNT ON;
INSERT INTO TrackArticleAttachmentTbl (ArticleAttachmentID, ActionOn)
SELECT i.ArticleAttachmentID, GETDATE() FROM inserted i
END
GO
觸發了刪除操作:
CREATE TRIGGER [dbo].[trArticleAttachmentTrackDelete]
ON [dbo].[ArticleAttachment]
AFTER DELETE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
SET NOCOUNT ON;
INSERT INTO TrackArticleAttachmentTblRowDel (ArticleAttachmentID, ActionOn)
SELECT i.ArticleAttachmentID, GETDATE() FROM deleted i
END
GO
查詢來獲取輸出
SELECT
CASE WHEN i.ArticleAttachmentID IS NULL THEN 'This is a delete'
WHEN d.ArticleAttachmentID IS NULL THEN 'This is an insert'
ELSE 'This is an update'
END as Action,
*
FROM
TrackArticleAttachmentTbl i
FULL OUTER JOIN
TrackArticleAttachmentTblRowDel d
ON i.ArticleAttachmentID = d.ArticleAttachmentID
OUTPUT:
This is an update 38 18226 2012-02-19 14:01:52 5 18226 2012-02-19 14:02:01
This is an update 22 18210 2012-02-15 16:38:39 4 18210 2012-02-15 16:39:29
This is an update 13 18201 2012-02-15 12:21:22 2 18201 2012-02-15 12:21:32
This is an update 47 18235 2012-02-19 16:37:54 6 18235 2012-02-19 17:09:53
查詢來獲取更新的記錄
SELECT *
FROM dbo.ArticleAttachment
WHERE ArticleAttachmentID IN (18226,18210,18201,18235)
沒有結果這個:(
我們如何在沒有看到您的代碼的情況下爲您提供幫助?請發佈您的觸發代碼。 – sisdog 2012-02-29 07:08:20
如果您提供了觸發器的腳本,我們可以幫助您。 – 2012-02-29 07:08:44
我已經提供了觸發器和查詢輸出的代碼 – 2012-02-29 07:46:14