用觸發(fā)器生成SQL Server2000數(shù)據(jù)表的操作日志
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
有時,我們想知道登錄到數(shù)據(jù)庫的用戶做了什么,于是,記錄用戶執(zhí)行的SQL語句就非常有必要,這將是重要的參考依據(jù)。我們先建一張日志表(DBLoger)用于保存用戶執(zhí)行的SQL語句:
程序代碼 Create TABLE DBLoger( LoginName nvarchar(50), HostName nvarchar(50), EventInfo nvarchar(500), Parameters int, EventType nvarchar(100) ) 接著再建一個觸發(fā)器,在用戶對表進(jìn)行增/刪/改時觸發(fā),將執(zhí)行的SQL語句記錄到日志表中: 程序代碼 Create TRIGGER Loger ON student FOR Insert, Update, Delete AS SET NOCOUNT ON Create TABLE #T(EventType nvarchar(100),Parameters int,EventInfo nvarchar(500)) Insert #T exec('dbcc inputbuffer(' + @@spid + ')') --記錄到日志表 Insert INTO DBLoger(LoginName,HostName,EventInfo,Parameters,EventType) Select suser_sname(),host_name(),EventInfo,Parameters,EventType FROM #T 說明:由于dbcc inputbuffer的EventInfo最多只能保存255個字符,所以一旦執(zhí)行的SQL過長,日志表中將無法看到完整的SQL語句! 該文章在 2011/3/14 15:07:08 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |