我有一个数据库超过一百个表.我不断向现有表添加列(如果需要),并添加了几个新表.
现在我想检查过去3个月里我做了哪些改变. MS sql Server 2012中是否有任何活动记录用于跟踪更改的特定数据库.
解决方法
现在,您的选择是有限的,未来你可以尝试下面,并检查,看看他们是否帮助你,现在..
1.如果启用了审核,您可以跟踪更改
要检查,如果您启用了审核,您可以使用下面的查询..
select * from sys.dm_server_audit_status
如果您尚未启用审核,您可以启用它,如下所示:An Introduction to SQL Server Audit …我不建议启用审核,除非您需要捕获除了您的问题中提到的内容
2.默认跟踪还捕获创建的表,但是当空间已满时,这会使用翻转文件机制来覆盖最后的文件,因此您可能会失去运气(因为您要求三个月的范围),但请尝试:What event information can I get by default from SQL Server?找出知道所有的东西,这是由默认跟踪提供的
我会使用此选项,尝试备份这些文件,具体取决于它们的汇总(因为您只需要检查表更改)
最后一个最后的选择是查询Tlog
select * from fn_dblog(null,null) where [transaction name]='CREATE TABLE'
上述Tlog选项仅在您有三个月以上的Tlog备份的情况下才有效,并且还需要恢复它们