下載吧 - 綠色安全的游戲和軟件下載中心

軟件下載吧

當前位置:軟件下載吧 > 數據庫 > MS_SQL > 利用SQL Server觸發(fā)器實現表的歷史修改痕跡記錄

利用SQL Server觸發(fā)器實現表的歷史修改痕跡記錄

時間:2024-02-08 11:17作者:下載吧人氣:24

在很多應用程序開發(fā)中,需要記錄某些數據表的歷史記錄或修改痕跡,以便日后出現數據錯誤時進行數據排查。這種業(yè)務需求,我們可以通過數據庫的觸發(fā)器來輕松實現歷史記錄功能。

本文以SQL Server 2005數據庫中的觸發(fā)器為例(因為手中的項目用的就是這個數據庫)

先簡單描述一下SQL Server觸發(fā)器。

SQL Server觸發(fā)器的inserted和deleted

SQL Server為每個觸發(fā)器都創(chuàng)建了兩個專用虛擬表:inserted表和deleted表。這兩個表由系統(tǒng)來維護,他們存在于內存中,而不是在數據庫中。這兩個表的結構總是與被該觸發(fā)器作用的表結構相同。觸發(fā)器執(zhí)行完成后,與該觸發(fā)器相關的兩個表會被刪除(即在內存中銷毀)。

inserted表存放由執(zhí)行insert或update語句而要想飆中插入的所有行;即:插入后或更新后的值。
deleted表存放由delete或update語句而要從表中刪除的所有行;即:刪除或更新錢的值。

SQL操作 inserted表 deleted表
增加(insert)記錄 存放新增的記錄 [不可用]
修改(update)記錄 存放更新后的記錄 存放更新前的記錄
刪除(delete)記錄 [不可用] 存放被刪除的記錄

SQL Server觸發(fā)器的instead of和after

SQL Server提供了兩種觸發(fā)器:instead of和after觸發(fā)器。這兩種觸發(fā)器的區(qū)別在于他們被激活的時機不同:

  • instead of觸發(fā)器用于替代引用觸發(fā)器執(zhí)行的sql語句。除表之外,instead of觸發(fā)器也可以用于視圖,用來擴展視圖可以支持更新操作。
  • after觸發(fā)器在一個inserted、update或delete語句之后執(zhí)行,進行約束檢查等動作都在after觸發(fā)器被激活之前發(fā)生。after觸發(fā)器只能用于數據表中。

說(復制)了這么多,是因為我們要實現的功能需要用到inserted虛擬表、deleted虛擬表和after觸發(fā)器。

實現方法

通過一個示例來演示具體的實現方法。

假設當前有一個表:產品表(product),字段為“產品名(name)”、“產品描述(description)”、“單價(unit_cost)”和“生成日期(pub_time)”。

CREATE TABLE product(name VARCHAR(50),description VARCHAR(200),unit_cost MONEY,pub_time DATETIME)
GO

現在我們”上帝”的需求是:需要記錄product表發(fā)生數據變化(增、刪、改)時,記錄每次操作改動情況。

1.創(chuàng)建日志表

需要創(chuàng)建一個產品日志表(product_log)用來將記錄每次數據改動情況,我這里直接在原數據表的結構上增加兩個字段(在實際開發(fā)環(huán)境中,大家可以根據需求來設置日志表的表結構),分別為sqlcomm和exectime;代碼如下:

CREATE TABLE product_log(name VARCHAR(50),description VARCHAR(200),unit_cost MONEY,pub_time DATETIME,sqlcomm varchar(10),exectime datetime)
GO

標簽MSSQL,SQLServer,技術文檔,數據庫,SQLSERVER

相關下載

查看所有評論+

網友評論

網友
您的評論需要經過審核才能顯示

熱門閱覽

最新排行

公眾號

主站蜘蛛池模板: 国内精品久久久久影视| 国产精品美女自在线观看免费 | 成人在线免费观看| 亚洲国产成人久久综合一区| 美女被免费视频网站| 国产精品嫩草影院线路| 一级黄色在线播放| 日韩精品无码久久一区二区三 | 中文字幕制服丝袜| 欧美不卡视频一区发布| 免费网站看av片| 韩国演艺圈悲参39全集都有谁| 国产麻豆91网在线看| 中文字幕久久久久一区| 极品精品国产超清自在线观看| 人妻尝试又大又粗久久| 草莓视频国产在线观看| 国产精品久久久久aaaa| av在线播放日韩亚洲欧| 成年性午夜免费视频网站不卡| 亚洲AV最新在线观看网址| 激情综合色综合久久综合| 国产suv精品一区二区33| 51视频精品全部免费最新| 女同学下面粉粉嫩嫩的p| 久久久久亚洲av成人网| 欧洲吸奶大片在线看| 亚洲色一区二区三区四区| 精品视频一区二区三区在线观看| 国产性夜夜春夜夜爽三级| 404款禁用软件onlyyou| 天天躁天天狠天天透| 中文字幕电影在线观看| 日韩精品黄肉动漫在线观看| 亚洲日韩国产成网在线观看 | 一二三四社区在线中文视频| 日本精品久久久久久福利| 亚洲国产精品一区二区成人片国内| 相泽南亚洲一区二区在线播放| 国产V亚洲V天堂A无码| 麻豆映画传媒有限公司地址|