我添加和已修改多个(新的和现有的分别)表格和存储过程,对于特定的数据库和服务器,过去3个月。
我在想是否有任何SQL查询可以确定所有这些更改。
感谢。
答案 0 :(得分:31)
查询sys.objects
表,找到按modify_date
和type
更改和过滤的对象; 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)。