按照创建顺序列出一个SQL Server上的所有数据库

时间:2013-09-18 15:14:37

标签: sql sql-server tsql sql-server-2005

在这个SQL Server(2005)实例上,我可能有超过100个数据库。我想按照创建日期的顺序列出它们,甚至更好,按照最新修改日期的顺序列出。

我是否可以编写SELECT查询,同样重要的是,我从哪个上下文编写它以及执行它需要什么权限?

3 个答案:

答案 0 :(得分:18)

您可以轻松地针对sys.databases目录视图

编写此查询
SELECT * FROM sys.databases
ORDER BY create_date 

但不幸的是,我所知道的“最后修改日期”没有相应的内容......

这应该可以在该服务器上的任何数据库中运行 - 与您所在的数据库无关,这些sys目录视图应该可以从任何地方访问。

答案 1 :(得分:2)

create table #db_name (db_name nvarchar(128), last_change datetime);
exec sp_MSForEachDB 'Use ?; insert into #db_name (db_name, last_change) select ''?'', max(modify_date) from sys.tables'
select * from #db_name order by last_change desc

这不是一个选择,但至少你得到了你想要的。我在我们的一个数据库上是db_owner,可能在整个服务器范围内没有什么令人印象深刻的,所以它不是很苛刻。

答案 2 :(得分:1)

这可以让你接近你想要的。

SELECT name, crdate 
FROM master..sysdatabases