我们可以通过以下语句查询单个数据库中所有表的创建日期、最后更新日期:
select * from sys.tables
同时也可以通过以下语句查询服务器上所有在线的数据库:
select * from sys.databases where state_desc='online'
依此,我们可以根据该数据库中所有表的最大modify_date为准,建立一个临时表#table,记录下每一个数据库的库名和最后更新时间,脚本代码如下:
--创建临时表 if OBJECT_ID('tempdb..#table') is not null drop table #table create table #table ( dbName varchar(50), modifyDate datetime ) declare @execSQL nvarchar(MAX) declare sqlCur cursor for --拼接SQL语句,插入数据库名和最后数据表的更新时间到临时表 select 'use '+name +' declare @modifyDate dateTime ' +' select @modifyDate=Max(modify_date) from sys.tables ' +' insert into #table(dbName, modifyDate) values('''+name+''', @modifyDate)' as sqlStr from sys.databases where state_desc='online' open sqlCur fetch next from sqlCur into @execSQL while @@fetch_status=0 BEGIN exec(@execSQL) fetch next from sqlCur into @execSQL END --查询临时表,得出数据库和数据库的最后更新时间 select * from #table close sqlCur deallocate sqlCur
成功查询出来的结果如下: