2009-05-16 6 views
53

J'ai besoin d'une requête SQL pour trouver les noms des bases de données existantes.Requête SQL Server pour trouver tous les noms de base de données en cours

+6

Bonjour Bob Jones! S'il vous plaît assurez-vous que vous acceptez sur la réponse comme un correct/accepté, afin d'aider les futurs utilisateurs. –

+1

@BobJones Il semble qu'il y ait une réponse là-bas qui pourrait fonctionner pour vous - pourriez-vous en accepter une, pour aider les futurs utilisateurs? – Cullub

Répondre

64

Voici une requête pour montrer toutes les bases de données dans un moteur Sql

Select * from Sys.Databases 
2

This forum suggère aussi:

SELECT CATALOG_NAME AS DataBaseName 
FROM INFORMATION_SCHEMA.SCHEMATA 
+1

Cela n'a pas fonctionné sur ma machine. MSDN dit qu'il est supposé "contenir une ligne pour chaque base de données qui possède des autorisations pour l'utilisateur actuel". Cependant, les résultats ont été limités à la seule base de données actuelle. "SELECT * FROM sysdatabases" fonctionne mieux pour moi. – beach

43
SELECT name 
FROM sys.databases 

Vous ne verrez que les bases de données vous avez la permission de voir.

9

Un autre à ajouter au mélange:

EXEC sp_databases 
5

Je ne recommande pas cette méthode ... mais si vous voulez aller loufoque et étrange:

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

ou

EXEC sp_MSForEachDB 'Print ''?''' 
1

Pour les personnes où " sys.databases" ne fonctionne pas, Vous pouvez également utiliser ceci;

SELECT DISTINCT TABLE_SCHEMA from INFORMATION_SCHEMA.COLUMNS 
+0

ce sera table_schema par exemple. 'dbo' ne pas nom de DB – tukan

Questions connexes