По-долу са три начина, по които можем да използваме 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 за повече информация и примери.