自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何用觸發(fā)器實(shí)現(xiàn)記錄數(shù)據(jù)庫表和記錄更改日志的操作

數(shù)據(jù)庫 SQL Server
數(shù)據(jù)庫操作中,通過設(shè)置觸發(fā)器,可以來記錄數(shù)據(jù)庫表及更改日志的信息。那么觸發(fā)器該怎么設(shè)置呢?本文主要就介紹了這一過程的觸發(fā)器的設(shè)置工作,希望能夠?qū)δ兴鶐椭?/div>

數(shù)據(jù)庫操作中,我們常常需要記錄數(shù)據(jù)庫表以及記錄更改日志等信息,以方便我們在數(shù)據(jù)庫出現(xiàn)錯(cuò)誤時(shí),可以及時(shí)地查看日志進(jìn)行問題排查。而這些過程可以通過設(shè)置觸發(fā)器來實(shí)現(xiàn)的,本文主要就介紹了使用觸發(fā)器來記錄數(shù)據(jù)庫表及記錄更改日志的方法,接下來就讓我們來一起了解一下這一過程吧。

--創(chuàng)建觸發(fā)器

  1. Create TRIGGER [dbo].[triINF_OrganLog]  
  2.  
  3. ON  dbo.INF_Organ  
  4.  
  5. AFTER DELETE,UPDATE  
  6.  
  7. AS   
  8.  
  9. BEGIN  
  10.  
  11. SET NOCOUNT ON;  

--設(shè)置增加觸發(fā)器的表

  1. declare @table varchar(100)  
  2.  
  3. set @table='INF_Organ' --需要設(shè)置表名 

--如果日志表不存在則生成日志表

  1. if object_id('Logs_'+@table) is null    
  2.  
  3. begin   
  4.  
  5. --生成日志表  
  6.  
  7. exec ('select * into Logs_'+@table+' from '+@table+' where 1<>1')  
  8.  
  9. --增加日志字段  
  10.  
  11. exec ('alter table Logs_'+@table+' add LogId int IDENTITY (1,1) NOT NULL primary key')    
  12.  
  13. exec ('alter table Logs_'+@table+' add LogType varchar(50)')      
  14.  
  15. exec ('alter table Logs_'+@table+' add LogDate datetime')    
  16.  
  17. end 

--記錄日志

  1. select * into #deleted from deleted --修改記錄轉(zhuǎn)為為臨時(shí)表  
  2.  
  3. declare @logType varchar(50),@columns varchar(4000),@sql varchar(4000) 

--獲取操作類型

  1. set @logType='''delete'''  
  2.  
  3. select @logType='''update''' from inserted 

--組合執(zhí)行語句

  1. select @columns=isnull(@columns+',','')+name from syscolumns where id =object_id(@table)   
  2.  
  3. set @sql='insert into dbo.Logs_'+@table+'(LogDate,LogType,'+@columns+') select getdate(),'+@logType+','+@columns+' from #deleted'  
  4.  
  5. exec(@sql)  
  6.  
  7. SET NOCOUNT OFF;   
  8.  
  9. END 

關(guān)于用觸發(fā)器記錄數(shù)據(jù)庫表和記錄更改日志的知識就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. Oracle數(shù)據(jù)庫賬號頻繁被鎖定的原因排查
  2. Oracle數(shù)據(jù)庫如何創(chuàng)建虛擬列和復(fù)合觸發(fā)器
  3. MySQL數(shù)據(jù)庫目錄結(jié)構(gòu)及常用命令的使用總結(jié)篇
  4. 以MySQL為例介紹數(shù)據(jù)庫測試工具dbmonster的使用
  5. 通過引進(jìn)SQL Server 2000驅(qū)動的jar包連接SQL服務(wù)器
責(zé)任編輯:趙鵬 來源: CSDN博客
相關(guān)推薦

2010-04-15 15:32:59

Oracle操作日志

2024-12-23 13:31:38

2010-09-01 16:40:00

SQL刪除觸發(fā)器

2011-08-04 11:00:35

Oracle數(shù)據(jù)庫虛擬列復(fù)合觸發(fā)器

2011-04-02 15:05:23

觸發(fā)器數(shù)據(jù)庫

2011-08-10 16:46:01

DB2數(shù)據(jù)庫觸發(fā)器

2010-07-07 17:05:39

SQL Server數(shù)

2010-05-27 17:16:20

MySQL數(shù)據(jù)庫

2010-07-19 09:50:58

SQL Server2

2011-03-03 14:04:48

Oracle數(shù)據(jù)庫觸發(fā)器

2019-09-22 21:34:59

數(shù)據(jù)庫平滑變更表結(jié)構(gòu)

2019-10-22 07:50:45

SqlServer數(shù)據(jù)庫觸發(fā)器

2010-05-18 14:35:06

MySQL觸發(fā)器

2010-05-28 10:48:52

MySQL數(shù)據(jù)庫

2024-09-29 16:11:55

NLogSQL數(shù)據(jù)庫

2017-06-29 14:35:59

Oracle觸發(fā)器

2019-04-30 15:28:46

數(shù)據(jù)庫存儲過程觸發(fā)器

2010-09-13 16:46:10

SQL Server觸

2010-06-01 17:45:57

MySQL數(shù)據(jù)庫

2010-06-30 09:36:25

SQL Server
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號