Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

3 начина да получите списък с бази данни в SQL Server (T-SQL)

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. В SQL Server, как да генерирам израз CREATE TABLE за дадена таблица?

  2. Изчислете разликата във времето между два реда

  3. CHARINDEX() срещу PATINDEX() в SQL Server – Каква е разликата?

  4. Как да направите UPDATE Pass-Through заявка в SQL Server

  5. Какво е функция с таблично значение в SQL Server?