Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

3 Cara Mendapatkan Daftar Database di SQL Server (T-SQL)

Di bawah ini adalah tiga cara kita dapat menggunakan T-SQL untuk mengembalikan daftar database di SQL Server.

sp_databases Prosedur Tersimpan

Di SQL Server, sp_databases prosedur tersimpan mencantumkan database yang berada di instance SQL Server atau dapat diakses melalui gateway database.

Berikut ini contoh menjalankan prosedur ini:

sp_databases;

Contoh hasil:

+-----------------------+-----------------+-----------+
| DATABASE_NAME         | DATABASE_SIZE   | REMARKS   |
|-----------------------+-----------------+-----------|
| KrankyKranes          | 16384           | NULL      |
| master                | 6848            | NULL      |
| model                 | 16384           | NULL      |
| msdb                  | 79040           | NULL      |
| Music                 | 16384           | NULL      |
| NarrowNationExporters | 147456          | NULL      |
| tempdb                | 24576           | NULL      |
| WideWorldImporters    | 3575808         | NULL      |
| World                 | 81920           | NULL      |
+-----------------------+-----------------+-----------+

Jika pernyataan tersebut bukan yang pertama dalam kumpulan, Anda harus mengawali nama prosedur dengan EXEC atau EXECUTE .

Jadi tiga perintah berikut ini setara:

sp_databases;
EXEC sp_databases;
EXECUTE sp_databases;

Tapi yang pertama hanya bisa digunakan jika itu adalah pernyataan pertama dalam satu batch.

sys.databases Lihat

sys.databases view berisi satu baris per database dalam contoh SQL Server.

Berikut ini contoh kueri tampilan ini:

SELECT name  
FROM sys.databases;

Contoh hasil:

+-----------------------+
| name                  |
|-----------------------|
| master                |
| tempdb                |
| model                 |
| msdb                  |
| Music                 |
| KrankyKranes          |
| WideWorldImporters    |
| World                 |
| NarrowNationExporters |
+-----------------------+

Tampilan ini berisi banyak kolom, dan Anda dapat menggabungkannya dengan tampilan/tabel lain, jadi ini adalah opsi ideal ketika Anda membutuhkan lebih banyak informasi daripada sp_databases prosedur kembali.

sys.sysdatabases Tabel/Tampilan

sys.sysdatabases sama dengan sys.databases .

Jadi kita cukup menukar sys.databases dalam contoh di atas ke sys.sysdatabases untuk mendapatkan hasil yang sama:

SELECT name  
FROM sys.sysdatabases;

Hasil:

+-----------------------+
| name                  |
|-----------------------|
| master                |
| tempdb                |
| model                 |
| msdb                  |
| Music                 |
| KrankyKranes          |
| WideWorldImporters    |
| World                 |
| NarrowNationExporters |
+-----------------------+

Namun, Anda harus menghindari opsi ini.

Tabel sistem SQL Server 2000 ini disertakan dalam rilis SQL Server saat ini sebagai tampilan untuk kompatibilitas mundur. Ini akan dihapus dalam versi Microsoft SQL Server yang akan datang. Microsoft menyarankan agar kami menghindari penggunaan fitur ini dalam pekerjaan pengembangan baru, dan berencana untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini.

Jadi, jika Anda menemukan skrip lama yang mereferensikan sys.sysdatabases , Anda harus mempertimbangkan untuk mengubahnya menjadi sys.databases .

Server Tertaut

Jika Anda perlu mendapatkan daftar database dari server tertaut, gunakan sp_catalogs sambil meneruskan nama server yang ditautkan.

Lihat Daftar Semua Basis Data dari Server Tertaut di SQL Server untuk informasi dan contoh selengkapnya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mendapatkan hasil ekspor dalam format CSV nyata di SQL Server Management Studio?

  2. SQL Server BCP mengekspor file yang rusak?

  3. Bagaimana cara mengubah SQL Server 2005 menjadi case sensitive?

  4. Concat nilai bidang ke string di SQL Server

  5. Sisipkan bidang lebar tetap secara massal