По-долу са три начина, по които можем да използваме T-SQL, за да върнем списък с бази данни в SQL Server.
sp_databases Съхранена процедура
В SQL Server, sp_databases Съхранената процедура изброява базите данни, които или се намират в екземпляр на SQL Server, или са достъпни през шлюз на база данни.
Ето пример за изпълнение на тази процедура:
sp_databases; Примерен резултат:
+-----------------------+----------------+---- -------+| DATABASE_NAME | DATABASE_SIZE | ЗАБЕЛЕЖКИ ||-----------------------+----------------+----- ------|| KrankyKranes | 16384 | NULL || майстор | 6848 | NULL || модел | 16384 | NULL || msdb | 79040 | NULL || Музика | 16384 | NULL || NarrowNationExporters | 147456 | NULL || tempdb | 24576 | NULL || WideWorldImporters | 3575808 | NULL || Светът | 81920 | NULL |+-----------------------+----------------+----- ------+
Ако изявлението не е първото в групата, ще трябва да поставите префикс към името на процедурата с EXEC или EXECUTE .
Така че следните три команди са еквивалентни:
sp_databases;
EXEC sp_databases;
EXECUTE sp_databases; Но първият може да се използва само ако е първият израз в пакет.
sys.databases Преглед
sys.databases изгледът съдържа по един ред на база данни в екземпляр на SQL Server.
Ето пример за заявка за този изглед:
SELECT name
FROM sys.databases; Примерен резултат:
<пред>+-----------------------+| име ||-----------------------|| майстор || tempdb || модел || msdb || Музика || KrankyKranes || WideWorldImporters || Свят || NarrowNationExporters |+-----------------------+
Този изглед съдържа много колони и можете да го присъедините с други изгледи/таблици, така че е идеална опция, когато имате нужда от повече информация от sp_databases процедура се връща.
sys.sysdatabases Таблица/Изглед
sys.sysdatabases е еквивалент на sys.databases .
Така че можем просто да разменим sys.databases в горния пример към sys.sysdatabases за да получите същия резултат:
SELECT name
FROM sys.sysdatabases; Резултат:
<пред>+-----------------------+| име ||-----------------------|| майстор || tempdb || модел || msdb || Музика || KrankyKranes || WideWorldImporters || Свят || NarrowNationExporters |+-----------------------+Трябва обаче да избягвате тази опция.
Тази системна таблица на SQL Server 2000 е включена в текущите версии на SQL Server като изглед за обратна съвместимост. Той ще бъде премахнат в бъдеща версия на Microsoft SQL Server. Microsoft препоръчва да избягваме използването на тази функция в нови разработки и да планираме да модифицираме приложения, които в момента използват тази функция.
Така че, ако срещнете стар скрипт, който препраща sys.sysdatabases , трябва да помислите да промените това на sys.databases .
Свързани сървъри
Ако трябва да получите списък с бази данни от свързан сървър, използвайте sp_catalogs докато предавате името на свързания сървър.
Вижте списък на всички бази данни от свързан сървър в SQL Server за повече информация и примери.