用于更改数据的Catch脚本

时间:2016-07-04 06:31:41

标签: sql sql-server

我们对我们的一个高效的客户环境产生了恼人的影响。定期(每周2-3次,但不总是在同一时间)一个脚本,我不知道该脚本来自哪里(可能来自一个程序,可能是db-server上的某个脚本),更改如1,5百万行并在一个表中更新3列。

是否有任何可能的方法来捕获并找出哪些脚本负责更改?

感谢您的帮助和您的想法。

2 个答案:

答案 0 :(得分:0)

我会尝试:

1)为SQL Server安装Red Gate SQL Search Addon

http://www.red-gate.com/products/sql-development/sql-search/

这允许您搜索任何内容。例如。在搜索字段中输入UPDATE,它会显示所有内部都有UPDATE语句的脚本等。

enter image description here

2)运行SQL事件探查器

https://msdn.microsoft.com/en-us/library/ms181091.aspx

允许您跟踪在服务器上运行的SQL命令,并根据您的定义将它们存储在日志中。但它需要服务器的大部分资源,所以要注意这一点。

3)编写触发器

触发更新语句的记录。

我认为第一个选项对你来说应该足够了。假设更新发生在某个存储过程或可能的任何SQL Server对象中,这也是找到此类更新语句的最快方法。

答案 1 :(得分:0)

有几种方法可以针对数据库表捕获DML操作。其中一种首选方法是通过在数据库级别编写触发器来捕获所有插入/更新/删除操作来构建审计试验。有几个有用的URL可以让你知道如何做到这一点。

要在数据库级别(作为管理员)执行相同操作,请按照以下网址

http://www.sqlshack.com/creating-successful-auditing-strategy-sql-server-databases/

随时留言以便进一步查询。