Как я могу получить все имена баз данных в экземпляре сервера SQL с помощью TSQL? - PullRequest
33 голосов
/ 25 мая 2010

Как я могу получить все имена баз данных в экземпляре сервера SQL, используя tsql?

Ответы [ 4 ]

65 голосов
/ 25 мая 2010
SELECT * FROM sys.databases
13 голосов
/ 25 мая 2010

---- Системные процедуры SQL SERVER 2005

EXEC sp_databases
EXEC sp_helpdb

---- Метод SQL 2000 все еще работает в SQL Server 2005

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

---- Недокументированная процедура SQL SERVER

EXEC sp_msForEachDB 'PRINT ''?'''

чтобы узнать больше о базе данных: http://blog.sqlauthority.com/2007/05/12/sql-server-2005-list-all-the-database/

5 голосов
/ 25 мая 2010

это должно работать практически на любой версии сервера sql

USE master;
SELECT NAME FROM sysdatabases;

[править: это тоже может быть SELECT NAME FROM sys.databases, на сайте Microsoft написано и то и другое, и я не в моем окне Windows для проверки, извините!]

Вы также можете использовать (только sql 2005)

USE master;
EXEC sp_databases;
0 голосов
/ 06 октября 2018

А для практического использования добавлена ​​пара общих фильтров:

  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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...