web-dev-qa-db-fra.com

Comment obtenir tous les noms de base de données dans une instance de serveur SQL à l'aide de tsql?

Comment obtenir tous les noms de base de données dans une instance de serveur SQL à l'aide de tsql?

31
Ogrish Man
SELECT * FROM sys.databases
64
Thomas

---- Procédures système SQL SERVER 2005

EXEC sp_databases
EXEC sp_helpdb

---- La méthode SQL 2000 fonctionne toujours dans SQL Server 2005

SELECT name
FROM sys.databases
SELECT name
FROM sys.sysdatabases

---- SQL Server Procédure non documentée

EXEC sp_msForEachDB 'PRINT ''?'''

en savoir plus sur la base de données: http://blog.sqlauthority.com/2007/05/12/sql-server-2005-list-all-the-database/

13
Pranay Rana

cela devrait fonctionner sur à peu près n'importe quelle version du serveur SQL

USE master;
SELECT NAME FROM sysdatabases;

[modifier: cela pourrait être aussi SELECT NAME FROM sys.databases, le site Web de Microsoft dit les deux et je ne suis pas sur mon Windows Box pour tester, désolé!]

vous pouvez également utiliser (sql 2005 uniquement)

USE master;
EXEC sp_databases;
5
chris

Et pour une utilisation pratique ajouté quelques filtres communs:

  select    database_id, [name] database_name                    
    from  master.sys.databases
    WHERE state <> 6                            -- skip offline
      AND database_id > 4                       -- skip system dbs
      AND HAS_DBACCESS([name]) = 1              -- with User Access
0
Mike S