亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

SQL Server實(shí)現(xiàn)用觸發(fā)器捕獲DML操作的會(huì)話(huà)信息【實(shí)例】

2024-08-31 01:04:47
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

需求背景

上周遇到了這樣一個(gè)需求,維護(hù)人員發(fā)現(xiàn)一個(gè)表的數(shù)據(jù)經(jīng)常被修改,由于歷史原因;文檔缺少;以及維護(hù)人員的經(jīng)常變更,導(dǎo)致他們對(duì)系統(tǒng)也業(yè)務(wù)也不完全熟悉,他們也不完全清楚哪些系統(tǒng)和應(yīng)用程序會(huì)對(duì)這個(gè)表的數(shù)據(jù)進(jìn)行操作?,F(xiàn)在他們想找出有哪些服務(wù)器,哪些應(yīng)用程序會(huì)對(duì)這個(gè)表進(jìn)行INSERT、UPDATE操作。那么問(wèn)題來(lái)了,怎么去解決這個(gè)問(wèn)題呢?

解決方案

由于數(shù)據(jù)庫(kù)版本是標(biāo)準(zhǔn)版,我們選擇了使用觸發(fā)器來(lái)捕獲進(jìn)行DML操作的會(huì)話(huà)的相關(guān)信息,例如,Host_Name、Program_Name等 ,選擇觸發(fā)器是因?yàn)楹?jiǎn)單直接。我們先創(chuàng)建一個(gè)表名為T(mén)EST的表,假設(shè)我們想監(jiān)控有哪些應(yīng)用服務(wù)器,以及那些應(yīng)用程序會(huì)對(duì)表TEST進(jìn)行INSERT、UPDATE操作。

USE [AdventureWorks2014]GO IF NOT EXISTS (SELECT 1 FROM sys.sysobjects WHERE id=object_id(N'[dbo].[TEST]') AND OBJECTPROPERTY(id, N'IsTable')=1 )BEGINCREATE TABLE [dbo].[TEST](  [OBJECT_ID] [INT] NOT NULL,  [NAME] [VARCHAR](8) NULL,  CONSTRAINT PK_TEST  PRIMARY KEY (OBJECT_ID)) ENDGO INSERT INTO dbo.TESTSELECT 1, 'kerry' UNION ALLSELECT 2, 'jimmy'

那么我們接下來(lái)在表上面新增幾個(gè)字段 [HOST_NAME]、[PROGRAM_NAME]、LOGIN_NAME用來(lái)記錄最后一次修改該記錄的會(huì)話(huà)信息,另外創(chuàng)建觸發(fā)器TRG_TEST來(lái)更新這幾個(gè)字段

ALTER TABLE TEST ADD [HOST_NAME] NVARCHAR(256)ALTER TABLE TEST ADD [PROGRAM_NAME] NVARCHAR(256);ALTER TABLE TEST ADD LOGIN_NAME NVARCHAR(256); CREATE TRIGGER TRG_TEST ON dbo.TEST AFTER INSERT,UPDATEAS  IF (EXISTS(SELECT 1 FROM INSERTED))BEGIN   UPDATE dbo.TEST  SET   dbo.TEST.[HOST_NAME] = ( SELECT host_name                   FROM  sys.dm_exec_sessions                   WHERE session_id = @@SPID                  ) ,      dbo.TEST.PROGRAM_NAME = ( SELECT  program_name                   FROM   sys.dm_exec_sessions                   WHERE   session_id = @@SPID                  ) ,      dbo.TEST.LOGIN_NAME = ( SELECT login_name                  FROM  sys.dm_exec_sessions                  WHERE  session_id = @@SPID                 )  FROM  dbo.TEST t      INNER JOIN INSERTED i ON t.OBJECT_ID = i.OBJECT_IDENDGO

 

接下來(lái),我們來(lái)簡(jiǎn)單測(cè)試一下,如下所示,分布插入、更新一條記錄

INSERT INTO dbo.TEST(OBJECT_ID,NAME)SELECT 3,'ken' UPDATE dbo.TEST SET NAME='Richard' WHERE OBJECT_ID=2;

 

如下所示,因?yàn)槲抑皇怯肧SMS更新,插入數(shù)據(jù),所以捕獲的是Microsoft SQL Server Management Studio - Query。

sqlserver,觸發(fā)器

這這種方式還有一個(gè)弊端,那就是如果應(yīng)用程序的SQL,寫(xiě)得不夠健壯的話(huà),那么增加字段就會(huì)導(dǎo)致以前的應(yīng)用程序出現(xiàn)問(wèn)題,例如,應(yīng)用程序有下面這樣的SQL,增加字段后,它就會(huì)報(bào)錯(cuò)。

INSERT INTO dbo.TESTSELECT 3,'ken'

所以這種方案不太可行,會(huì)增加應(yīng)用程序出現(xiàn)Bug的風(fēng)險(xiǎn)。那么其實(shí)我們可以新建一個(gè)表,每當(dāng)原表TEST有INSERT、UPDATE操作時(shí),通過(guò)觸發(fā)器捕獲會(huì)話(huà)進(jìn)程信息,然后插入該表(注意,新建的表包含源表的主鍵字段,例如這里TEST的主鍵字段為OBJECT_ID,那么我們下面就包含OBJECT_ID)

USE [AdventureWorks2014]GO DROP TABLE dbo.[TRG_TEST_SESSION_INFO];GO IF NOT EXISTS (SELECT 1 FROM sys.sysobjects WHERE id=object_id(N'[dbo].[TRG_TEST_SESSION_INFO]') AND OBJECTPROPERTY(id, N'IsTable')=1 )BEGINCREATE TABLE [TRG_TEST_SESSION_INFO](  [ID]        INT NOT NULL IDENTITY(1,1),  [OBJECT_ID]    INT,  [HOST_NAME]    NVARCHAR(256),  [PROGRAM_NAME]   NVARCHAR(256),  [LOGIN_NAME]    NVARCHAR(256),  CONSTRAINT PK_TRG_TEST_SESSION_INFO  PRIMARY KEY (ID)) ENDGO CREATE TRIGGER TRG_TEST_SESSION ON dbo.TESTAFTER INSERT ,UPDATEAS IF (EXISTS(SELECT 1 FROM INSERTED))BEGIN   /*  INSERT INTO dbo.[TRG_TEST_SESSION_INFO]  SELECT (SELECT I.OBJECT_ID FROM INSERTED I), HOST_NAME,program_name,login_name                   FROM  sys.dm_exec_sessions                   WHERE session_id = @@SPID*/  INSERT INTO dbo.[TRG_TEST_SESSION_INFO]  SELECT I.OBJECT_ID, S.HOST_NAME,S.PROGRAM_NAME,S.LOGIN_NAME                   FROM  sys.dm_exec_sessions s,                      Inserted i                   WHERE session_id = @@SPID  ENDGO

在運(yùn)行一小段時(shí)間后,如果已經(jīng)找出了哪些服務(wù)器、哪些應(yīng)用程序會(huì)對(duì)這些表操作后,那么就必須馬上刪除這些表和觸發(fā)器,避免長(zhǎng)時(shí)間運(yùn)行,影響性能。

以上這篇SQL Server實(shí)現(xiàn)用觸發(fā)器捕獲DML操作的會(huì)話(huà)信息【實(shí)例】就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MSSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
青青久在线视频| 伊人影院在线观看| 午夜精品影视国产一区在线麻豆| 国产三区在线成人av| 黑人巨大精品欧美一区二区小视频| 日韩欧美亚洲另类制服综合在线| 清纯唯美激情亚洲| 欧美日韩免费一区二区三区视频| 欧美黑人一级片| 91视频论坛| 国产尤物一区二区| 日韩不卡在线播放| 国产精品私拍pans大尺度在线| 日韩国产高清视频在线| 精品在线播放免费| 高清国产mv在线观看| 男人的天堂色| 中文字幕视频在线观看| 欧美日韩精品| 久久久国产精彩视频美女艺术照福利| 自拍视频一区二区三区| 天天碰日日操| 国产高清一级毛片在线不卡| 亚洲一区在线免费观看| 青青青青在线| 中国女人内谢69视频| 成人无码精品1区2区3区免费看| 久久福利毛片| 国产美女精品一区二区三区| 亚洲第一二三区| 欧美成人三级| 一区二区三区国产精华| 欧美丝袜自拍制服另类| 色婷婷久久一区二区| 超碰电影在线播放| 久久久无码一区二区三区| wwwwxxxx国产| 日产日韩在线亚洲欧美| 欧美性极品少妇精品网站| 四虎884aa成人精品| 久久久久国产精品一区三寸| 亚洲精品一二三四| 熟妇人妻久久中文字幕| 欧美天堂亚洲电影院在线观看| 成人免费xxxxx在线观看| 国产精品香蕉av| 久久久人成影片一区二区三区| 精品毛片久久久久久| 在线观看免费一区| 黄a在线观看| 亚洲免费精品视频| 免费看三级黄色片| 浪潮av在线| 天天撸夜夜操| 国产mv久久久| 婷婷亚洲久悠悠色悠在线播放| 国产又爽又黄的激情精品视频| 日本欧美一区二区三区| 国产又粗又猛又爽又黄91精品| 亚洲sss视频在线视频| 日韩一级理论片| 国产精品第3页| 色阁综合伊人av| 欧美午夜精品久久久久久孕妇| 免费看的av| 无码国产精品96久久久久| 国产精品伦理一区二区| h网站在线播放| 亚洲黄页视频免费观看| 四虎影视精品| 国产精品18hdxxxⅹ在线| 国产精品亚洲片夜色在线| 国产又大又黑又粗免费视频| 精品国产视频一区二区三区| 春意影院免费入口| 好男人www社区在线视频夜恋| 国产综合精品一区二区三区| 久久久综合亚洲91久久98| 亚洲激情图片小说视频| 一区二区三区成人在线视频| 亚洲精品一级二级| 国产一级片中文字幕| 136福利第一导航国产在线| 色噜噜狠狠色综合欧洲selulu| 日韩欧美一级二级三级| 91精品论坛| 国产一区二区在线影院| 一区二区三区在线观看av| 在线观看免费版| 瑟瑟网站在线观看| 日日摸夜夜添一区| 天天射综合网站| 国产在线精品一区二区中文| 日韩经典一区二区三区| 国产精品久久久久久久久久精爆| 亚洲精品中文字幕有码专区| 男人日女人视频网站| 午夜电影网一区| 男操女视频网站| 精品一区二区免费视频| а√天堂8资源在线| 欧美在线观看一区二区三区| 欧美人与禽zozzo禽性配| 九色porny自拍视频| 深夜福利视频一区二区| 伊人久久综合一区二区| 97在线视频免费看| 天天舔天天干| 日韩欧美在线一区二区| 先锋在线资源一区二区三区| 国产精品你懂的在线观看| 97香蕉久久夜色精品国产| 成人影院久久久久久影院| av免费在线观看不卡| 88xx成人精品| 8x8ⅹ国产精品一区二区二区| 日韩在线观看视频一区| 国产欧美三级电影| 午夜精品中文字幕| 国产在线色视频| 香蕉视频在线网站| 啦啦啦免费高清视频在线观看| 精品福利久久久| 国产精品 日产精品 欧美精品| 亚洲欧美日韩色| 亚洲主播在线| 色91精品久久久久久久久| 中文一区一区三区高中清不卡免费| 国产精品性做久久久久久| 日韩一级片免费看| 欧美图片激情小说| 亚洲情综合五月天| 国产精品一区二区中文字幕| 男女激情视频网站| 久久久久久久影视| 一级精品视频在线观看宜春院| 区一区二视频| 精品成人免费自拍视频| 午夜激情影院在线观看| 亚洲免费一区三区| 亚洲综合在线五月| 久久中文视频| 久久久久久久久久一区二区三区| 一区在线观看免费| 9l国产精品久久久久麻豆| 亚洲电影免费观看高清完整版在线观看| 性欧美1819sex性高清| 亚洲成人中文字幕| 国产亚洲精品bt天堂精选| a视频在线播放| 九九热99视频| 日本黄在线观看| 天堂精品在线视频| 亚洲在线免费看| jizz久久久久久| 黄色成人精品网站| 中文字幕91| av 日韩 人妻 黑人 综合 无码| 日韩一区二区久久久| 亚洲尤物视频在线| 97色在线播放视频| 欧美精品高清| 国产伦精品一区二区三区| 中文字幕一区二区三区5566| 希岛爱理一区二区三区av高清| 成人在线免费观看av| 日韩中文字幕久久久经典网| 久久久久久久电影| 日本免费在线观看视频| 天天干天天操天天干天天操| 色婷婷av777| 久久免费精品| 国产一级性片| 欧美经典三级视频一区二区三区| 视频一区欧美| 亚洲一级av无码毛片精品| 羞羞视频在线免费国产| 四虎影视最新网站入口在线观看| 欧美另类极品videosbestfree| 国产麻豆成人传媒免费观看| 亚洲国产一区二区三区在线观看| 伊色综合久久之综合久久| 免费在线观看视频一区| 日本道精品一区二区三区| 国产一区二区三区影视| 星空影院最新电视剧免费观看| 成人免费无遮挡无码黄漫视频| 97在线观看视频国产| 精品国产污网站| 日本高清在线观看| 99一区二区三区| 成人a视频在线观看| 综合久久婷婷| 久久在线免费视频| 欧美偷拍一区二区三区| 国产精品入口免费| 中文字幕欧美日韩精品| www黄色av| 亚洲成人影院少妇| 中文字幕55页| 高清在线成人网| 亚洲精品久久久久久国产精华液| 国产精品男人的天堂| 亚欧美中日韩视频| 国产mv日韩mv欧美| 国产一区视频在线看| 欧美挠脚心视频网站| 久久99这里只有精品| 在线观看中文字幕不卡| 精品一区二区三区欧美| 一区二区美女视频| 亚洲成色999久久网站| 色综合色综合色综合色综合| 福利一区二区三区视频在线观看| 欧美另类高清zo欧美| 成人观看免费视频| www.就去干.com| 视频精品一区二区| 国产资源精品在线观看| the porn av| 男女性高潮免费网站| 蜜桃av噜噜一区二区三区| 一级黄色免费视频| 日本最新高清不卡中文字幕| 亚洲三级在线播放| 99视频高清| 久久久久久这里只有精品| 亚洲宅男天堂在线观看无病毒| 亚洲人成777| 在线天堂新版最新版在线8| 暧暧视频在线免费观看| 日本欧美一区二区在线观看| 欧美高清视频看片在线观看| jiujiure精品视频播放| 婷婷开心激情综合| 亚洲白虎美女被爆操| 欧美成人一二三区| 天天综合亚洲| 久久久久久久久影院| 粉嫩在线一区二区三区视频| 亚洲综合色激情五月| 亚洲国产一区二区三区a毛片| 日韩中文字幕久久久经典网| 欧美亚洲一区三区| 国产又粗又爽又黄的视频| **欧美日韩vr在线| 国产午夜精品一区二区三区欧美| 中文字幕少妇一区二区三区| 亚洲高清在线看| 在线看片黄色| 成人精品影视| 国产超碰人人模人人爽人人添| 国产69精品久久久久久久久久| 国产在线视频资源| 亚洲黄色有码视频| 91精品综合久久久久久久久久久| 天天操天天舔| 成人av毛片| 亚洲成人免费在线视频| 男操女视频网站| 日韩欧美美女一区二区三区| 一二三四在线视频观看社区| 91亚洲无吗| 欧美最猛黑人xxxx黑人猛交黄| 国产精品高精视频免费| 久久久噜噜噜久噜久久综合| 亚洲精品一区二区三区影院忠贞| 伊人久久大香线蕉av不卡| 国产成人永久免费视频| 91精品久久久久久久久青青| 香蕉人妻av久久久久天天| 欧美精品国产白浆久久久久| 久久久久久一二三区| 国产欧美一区二区三区在线| 国产深夜福利| 中文字幕在线观看免费高清| 国产精品一区二区三区高清在线| 久久久久久久久久久久久女国产乱| 中文字幕国产欧美| 无码日韩精品一区二区| 51xtv成人影院| 91欧美一区二区三区| 2019中文字幕全在线观看| 午夜影院免费播放| 亚洲欧美中文日韩v在线观看| 久久一级电影| 欧美爆操老女人| aaa欧美色吧激情视频| 最近最新mv在线观看免费高清| 不卡av电影在线播放| 日韩精品一级| 国产日韩欧美在线一区| 成人免费直播在线| 粉嫩欧美一区二区三区| 很黄很污的视频网站| 日本精品视频在线| 久久伊人中文字幕| 四虎影视永久免费在线观看一区二区三区| 一本色道a无线码一区v| 视频一区二区三区入口| 亚洲欧美中文字幕在线观看| 欧美日韩精品在线一区二区| 久久本道综合色狠狠五月| 伊人久久大香线蕉综合热线| av免费在线免费| 美女在线视频免费| 国产成人精品午夜视频免费| 亚洲av成人精品一区二区三区| 韩国v欧美v亚洲v日本v| 色美美综合视频| 久久精品系列| 美女视频久久| 欧美高清性xxxxxxx| 在线播放日韩av| 午夜在线免费视频| 青青草综合在线| 精品成人久久久| 成人18网址在线观看| 国产不卡av在线免费观看| 狠狠v欧美ⅴ日韩v亚洲v大胸| 免费资源在线观看| 综合欧美精品| 亚洲丶国产丶欧美一区二区三区| 91玉足脚交白嫩脚丫在线播放| 五月天久久狠狠| 欧美日韩在线免费观看视频| 国产一区二区三区网站| 国产精品边吃奶边做爽|