如何找出修改Sql Database字段的时间?

时间:2009-05-27 04:49:02

标签: sql-server

表中的一个数据库字段正在被某段代码修改。我只是无法弄清楚在哪里!

所以,我想知道我是否有办法找到答案。

我正在使用SQL 2008.可以使用 Profiler 来查明特定字段是否正在更新?怎么样?

触发器怎么样?如果使用触发器(例如,在UPDATE上),你可以确定代码叫什么代码吗?触发器怎么能“通知我”这个?电子邮件/文件?

3 个答案:

答案 0 :(得分:4)

是的,该特定表格和字段上的“AFTER UPDATE”触发器可能会为您提供有关字段更改的时间和原因的一些线索。

来自联机丛书:

CREATE TRIGGER reminder
ON Person.Address
AFTER UPDATE 
AS 
  IF ( UPDATE (StateProvinceID) OR UPDATE (PostalCode) )
  BEGIN
    RAISERROR (50009, 16, 10)
  END;
GO

触发器基本上可以执行任何T-SQL代码 - 如果您正确设置了数据库邮件,它可以向您发送电子邮件,是的。或者它可以将审计条目写入另一个表或类似的表。

编辑:如果您需要找出哪些语句更新了您的列,您可能最好在服务器上运行跟踪,仅限于该特定表,并只跟踪那里发生的情况。我不认为触发器可以为您提供该信息(哪些代码导致更新发生)。

马克

答案 1 :(得分:1)

答案 2 :(得分:0)

是的,您可以使用触发器在更新表时执行某些代码(跟踪谁更新了表,通过电子邮件发送给您等)。请看这个链接:Track Updates with a Database Trigger

编辑:最初发布了错误的链接