SQLServer EVENTDATA()函數(shù)來獲取DDL 觸發(fā)器信息
發(fā)布日期:2022-02-01 14:35 | 文章來源:源碼中國
復制代碼 代碼如下:
-- Create a log table
CREATE TABLE TriggerLog (LogInfo xml) -- Create a dummy table to delete later on
CREATE TABLE TableToDelete (Id int PRIMARY KEY) -- 新建一個新表,作為刪除實驗表
INSERT INTO TableToDelete VALUES(1)
GO -- 創(chuàng)建一個Drop Table 的 DDL
CREATE TRIGGER StopTableDrop ON DATABASE AFTER DROP_TABLE
AS
DECLARE @EventData AS xml
SET @EventData = EVENTDATA() -- 必須要在rollback之前截獲DDL信息
ROLLBACK
PRINT 'DROP TABLE attempt in database ' + DB_NAME() + '.'
INSERT INTO TriggerLog VALUES(@EventData)
執(zhí)行如下刪除操作:
DROP TABLE TableToDelete
會觸發(fā)上面的DDL,從而回滾操作。
執(zhí)行下面的Sql:
SELECT * FROM TriggerLog
查看剛才截獲的DDL信息。
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。
相關文章