2

问题确实在标题中,我想知道我是否可以检查自上次备份以来数据库是否已被修改,因为我的公司非常零星地更改数据,我们最终得到了很多完全相同的备份。

4

2 回答 2

2

您可以查询对任何索引的最后更改。这包括对表的更改,因为表存储为一种特殊形式的索引(集群或堆):

select  max(last_user_update)
from    sys.dm_db_index_usage_stats ius
join    sys.databases db
on      ius.database_id = db.database_id
where   db.name = 'YourDbName'

这些统计信息在服务器重新启动后重置。您可以通过以下方式找到服务器重新启动时间:

select  create_date
from    sys.databases
where   database_id = 2 -- tempdb
于 2012-11-26T16:35:27.787 回答
0

最简单的方法是使用“上次更新”字段在您的架构中跟踪这一事实。您可以有一个“全局”值(这在您可能没有任何变化的情况下很有用,但如果有任何变化,您应该备份它)和/或每个表中的一列。您可以使用触发器管理此字段,因此您的任何应用程序都不必关心该字段是否存在,但如果您的应用程序在没有实际更改数据的情况下对记录执行更新,您可能会得到误报。

然后很简单;将备份设置为计划作业,基于查询检查任何和所有“上次更新”字段以查看它们是否比上次备份日期更新(您也可以将其放在架构中的某个位置以供快速参考)。

于 2012-11-26T16:37:15.503 回答