用DDL觸發器來記錄資料庫中各物件的修改狀態

2021-06-03 18:42:34 字數 858 閱讀 4385

--記錄資料庫修改狀態的ddl觸發器

--1、建立日誌表

create table 日誌表

( 日誌編號 int identity(1,1)primary key,

事件 varchar(600),

所用語句 varchar(8000),

操作者 varchar(50),

發生時間 datetime

)--2、建立ddl觸發器,來用記錄修改狀態.

-- eventdata()是乙個資料庫函式,其作用是以xml格式返回有關伺服器或資料庫的事件資訊

create trigger ddl_trigger1

on database

for ddl_database_level_events

as begin

declare @log xml

set @log=eventdata()

insert into 日誌表(事件,所用語句,操作者,發生時間)values

(@log.value('(/event_instance/eventtype)[1]','nvarchar(100)'),

@log.value('(/event_instance/tsqlcommand)[1]','nvarchar(2000)'),

convert(nvarchar(100),current_user),

getdate()

)end---3、測試 例項

create table at

( 名字 varchar(50),

年齡 int

)--4、檢視日誌表

select * from 日誌表

用觸發器記錄資料庫表記錄更改日誌

create trigger dbo triinf organlog on dbo.inf organ after delete,update as begin set nocount on 設定增加觸發器的表 declare table varchar 100 set table inf orga...

資料庫觸發器

觸發器是一種特殊型別的儲存過程,它不同於我們前面介紹過的儲存過程。觸發器主要是通過事件進行觸發而被執行的,而儲存過程可以通過儲存過程名字而 被直接呼叫。當對某一表進行諸如update insert delete 這些操作時,sql server 就會自動執行觸發器所定義的sql 語句,從而確保對資料...

資料庫觸發器

最近做了個觸發器的例子 create trigger tru user on user for update asif update status begin update user set stopflag 1 from inserted where user.userid inserted.us...