SQL Server中查询服务器上所有数据库的最后更新时间
我们可以通过以下语句查询单个数据库中所有表的创建日期、最后更新日期:
sql
select * from sys.tables
同时也可以通过以下语句查询服务器上所有在线的数据库:
sql
select * from sys.databases where state_desc='online'依此,我们可以根据该数据库中所有表的最大modify_date为准,建立一个临时表#table,记录下每一个数据库的库名和最后更新时间,脚本代码如下:
sql
--创建临时表if OBJECT_ID('tempdb..#table') is not nulldrop table #tablecreate table #table( dbName varchar(50), modifyDate datetime)declare @execSQL nvarchar(MAX)declare sqlCur cursorfor --拼接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 sqlCurfetch next from sqlCur into @execSQLwhile @@fetch_status=0BEGIN exec(@execSQL) fetch next from sqlCur into @execSQLEND--查询临时表,得出数据库和数据库的最后更新时间select * from #tableclose sqlCurdeallocate sqlCur成功查询出来的结果如下:
