新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何用觸發(fā)器實現(xiàn)記錄數(shù)據(jù)庫表和記錄更改日志的操作
在數(shù)據(jù)庫操作中,我們常常需要記錄數(shù)據(jù)庫表以及記錄更改日志等信息,以方便我們在數(shù)據(jù)庫出現(xiàn)錯誤時,可以及時地查看日志進(jìn)行問題排查。而這些過程可以通過設(shè)置觸發(fā)器來實現(xiàn)的,本文主要就介紹了使用觸發(fā)器來記錄數(shù)據(jù)庫表及記錄更改日志的方法,接下來就讓我們來一起了解一下這一過程吧。

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比革吉網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式革吉網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋革吉地區(qū)。費(fèi)用合理售后完善,十載實體公司更值得信賴。
--創(chuàng)建觸發(fā)器
- Create TRIGGER [dbo].[triINF_OrganLog]
- ON dbo.INF_Organ
- AFTER DELETE,UPDATE
- AS
- BEGIN
- SET NOCOUNT ON;
--設(shè)置增加觸發(fā)器的表
- declare @table varchar(100)
- set @table='INF_Organ' --需要設(shè)置表名
--如果日志表不存在則生成日志表
- if object_id('Logs_'+@table) is null
- begin
- --生成日志表
- exec ('select * into Logs_'+@table+' from '+@table+' where 1<>1')
- --增加日志字段
- exec ('alter table Logs_'+@table+' add LogId int IDENTITY (1,1) NOT NULL primary key')
- exec ('alter table Logs_'+@table+' add LogType varchar(50)')
- exec ('alter table Logs_'+@table+' add LogDate datetime')
- end
--記錄日志
- select * into #deleted from deleted --修改記錄轉(zhuǎn)為為臨時表
- declare @logType varchar(50),@columns varchar(4000),@sql varchar(4000)
--獲取操作類型
- set @logType='''delete'''
- select @logType='''update''' from inserted
--組合執(zhí)行語句
- select @columns=isnull(@columns+',','')+name from syscolumns where id =object_id(@table)
- set @sql='insert into dbo.Logs_'+@table+'(LogDate,LogType,'+@columns+') select getdate(),'+@logType+','+@columns+' from #deleted'
- exec(@sql)
- SET NOCOUNT OFF;
- END
關(guān)于用觸發(fā)器記錄數(shù)據(jù)庫表和記錄更改日志的知識就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
當(dāng)前題目:如何用觸發(fā)器實現(xiàn)記錄數(shù)據(jù)庫表和記錄更改日志的操作
分享路徑:http://www.dlmjj.cn/article/dhcijdj.html


咨詢
建站咨詢
