SQL Server查询以查找所有当前数据库名称

63
我需要一个SQL查询来查找现有数据库的名称。

7
你好,Bob Jones!请确保接受一个正确/已被接受的答案,以帮助未来的用户。 - radu florescu
2
@BobJones 看起来下面有一个答案适合你 - 你能接受其中一个,以帮助未来的用户吗? - Cullub
8个回答

74

以下是一个可以显示该Sql引擎中所有数据库的查询语句

Select * from Sys.Databases

52
SELECT name  
FROM sys.databases

您只能看到您有权限查看的数据库。


9

还有一个要加入到混合中:

EXEC sp_databases

5
我不建议使用这种方法...但是如果你想要一些奇怪的东西:

EXEC sp_MSForEachDB 'SELECT ''?'' AS DatabaseName'

或者

EXEC sp_MSForEachDB 'Print ''?'''

4

3

这个论坛也建议:

SELECT CATALOG_NAME AS DataBaseName
FROM INFORMATION_SCHEMA.SCHEMATA

1
这在我的机器上不起作用。MSDN说它应该“为当前用户包含每个数据库的一行权限”。然而,结果仅限于当前数据库。对我来说,“SELECT * FROM sysdatabases”效果更好。 - beach

0

对于无法使用 "sys.databases" 的人, 您也可以使用以下方法;

SELECT DISTINCT TABLE_SCHEMA from INFORMATION_SCHEMA.COLUMNS

这里的table_schema指的是数据库模式,例如dbo,而不是数据库名称。 - tukan

0
SELECT datname FROM pg_database WHERE datistemplate = false

#针对PostgreSQL


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接