[sql-server] SQL Server query to find all current database names

I need a SQL query to find the names of existing databases.

This question is related to sql-server

The answer is


For people where "sys.databases" does not work, You can use this aswell;

SELECT DISTINCT TABLE_SCHEMA from INFORMATION_SCHEMA.COLUMNS

You can also use these ways:

EXEC sp_helpdb

and:

SELECT name FROM sys.sysdatabases

Recommended Read:

Don't forget to have a look at sysdatabases VS sys.sysdatabases

A similar thread.


This forum suggests also:

SELECT CATALOG_NAME AS DataBaseName
FROM INFORMATION_SCHEMA.SCHEMATA

SELECT datname FROM pg_database WHERE datistemplate = false

#for postgres


I don't recommend this method... but if you want to go wacky and strange:

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

or

EXEC sp_MSForEachDB 'Print ''?'''

Another to add to the mix:

EXEC sp_databases

Here is a query for showing all databases in one Sql engine

Select * from Sys.Databases

SELECT name  
FROM sys.databases

You'll only see the databases you have permission to see.