如何找出修改配置表中的值的应用程序或SP?我以为我已经隔离了负责任的应用程序,但是当我继续将它们修改为假时,这些特殊值继续变回真实.
首先,创建一个日志表:
CREATE TABLE modlog(
datestamp smalldatetime,
username varchar(255) NOT NULL DEFAULT SYSTEM_USER
);
Run Code Online (Sandbox Code Playgroud)
然后在表上创建一个UPDATE触发器:
CREATE TRIGGER mytable_mods ON mytable FOR UPDATE AS
INSERT INTO modlog(smalldatetime) VALUES (GETDATE());
Run Code Online (Sandbox Code Playgroud)
只需查看modlog表,找出哪个用户正在更新表,以及何时更新.您可以获得想象力并记录特定字段的更新.
另一种方法是在SQL Server Profiler中设置跟踪,过滤掉它,因此它只返回该表的更新,并保持打开直到发生某些事情.
如果您的应用程序在其连接字符串中包含 ApplicationName参数,则可以使用 App_Name()而不是 SYSTEM_USER,它将记录应用程序名称,从而删除额外的侦探工作.了解用户可能仍然有用,因此您可以弄清楚他们正在做什么来触发更新.
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |