在SQL Server数据库中查找最近的对象更改

时间:2014-05-16 17:39:38

标签: sql-server-2008 tsql

添加已修改多个(新的和现有的分别)表格存储过程,对于特定的数据库服务器过去3个月

我在想是否有任何SQL查询可以确定所有这些更改。

感谢。

5 个答案:

答案 0 :(得分:31)

查询sys.objects表,找到按modify_datetype更改和过滤的对象; U =用户表,P =存储过程。

select * 
from sys.objects 
where (type = 'U' or type = 'P') 
  and modify_date > dateadd(m, -3, getdate()) 

此方法将告诉您哪些对象已更改,但未告知具体更改。

答案 1 :(得分:6)

您好,您可以使用此查询获取已更改/修改的数据库对象详细信息

select name,create_date,modify_date
from sys.procedures
order by modify_date desc

由于

答案 2 :(得分:2)

This answer可以同时获取“who”和“when”部分,但只有当前的跟踪信息可用时(~24小时)。

答案 3 :(得分:0)

您无法找到您对数据库/表/ SP所做的更改,您可以找到的是他们的名称,例如在哪些表/ SP /功能中,如果有任何更改,则通过此查询 -

select * from sys.objects where (type = 'U' or type = 'P') 
  and modify_date > dateadd(m, -3, getdate())

答案 4 :(得分:-2)

我认为你无法找到你想要的东西。 SQL Server不会立即跟踪该信息。

为了将来处理这个问题,你可以使用某种源代码控制(redgate,对于一个:http://www.red-gate.com/products/sql-development/sql-source-control),

或者您可以设置DDL触发器(此处描述了一种此类技术:https://dba.stackexchange.com/questions/33541/how-to-keep-history-of-sql-server-stored-procedure-revisions/33544#33544)。