IDを保持する物理テーブルと、挿入された、削除された、更新されたデータの時刻が であり、トリガーが(挿入、更新、削除後)ベーステーブルに追加されています。そのトラッキングの一種。更新されたデータの挿入と削除
挿入されたレコードと削除されたレコードは問題ありませんが、更新されたレコードのベーステーブルにレコードがありません。 レコードが挿入され、削除されています。
ここに何か不足している場合は助けてください。挿入および更新操作のための
トリガー:削除操作のための
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
トリガーのスクリプトを提供した場合は、お手伝いできます。 –
出力付きのトリガーとクエリのコードを提供しました –