Bagaimana saya bisa mendapatkan daftar database yang tersedia pada contoh SQL Server? Saya berencana untuk membuat daftar mereka di kotak kombo di VB.NET.
sql-server
sef
sumber
sumber
exec sp_databases
tidak berfungsi. Dua lainnya (master.dbo.sysdatabases
dansys.databases
) masih berfungsi.mengingat ambiguitas jumlah database non-pengguna, Anda mungkin harus menambahkan:
dan tambahkan nama basis data layanan pelaporan
sumber
Untuk mengecualikan basis data sistem:
Diperbarui dengan database_id yang akurat, Ini harus lebih besar dari 4, untuk melewati daftar sistem database yang memiliki id database antara 1 dan 4.
sumber
Bekerja pada SQL Server 2008 kami
sumber
ID
5 dan 6 akanReportServer
danReportServerTempDB
jika Anda telahSQL Server Reporting Services
menginstal.Karena Anda menggunakan .NET Anda dapat menggunakan Objek Manajemen SQL Server
sumber
var SDBLOC = new Microsoft.SqlServer.Management.Smo.Server("localhost").Databases.Cast<Microsoft.SqlServer.Management.Smo.Database>().Where(bs => !bs.IsSystemObject && bs.ID>6).ToList();
Jangan bingung, Gunakan kueri sederhana di bawah ini untuk mendapatkan semua basis data,
Jika Anda hanya membutuhkan database yang ditentukan Pengguna;
Beberapa nama basis data Sistem adalah (sumber daya, distribusi, layanan laporan, reportervicetempdb) cukup masukkan ke dalam kueri. Jika Anda memiliki db di atas di mesin Anda sebagai default.
sumber
Ini akan berfungsi untuk kedua kondisi, Apakah pelaporan diaktifkan atau tidak
sumber
Saya menggunakan kode Objek Manajemen Server SQL berikut untuk mendapatkan daftar database yang bukan database sistem dan bukan snapshot.
sumber
var DBsLOC = new Microsoft.SqlServer.Management.Smo.Server("localhost").Databases.Cast<Microsoft.SqlServer.Management.Smo.Database>().Where(bs => !bs.IsSystemObject && bs.ID>6).ToList();
atauforeach (var Db in new Microsoft.SqlServer.Management.Smo.Server("localhost").Databases)
dalam. NET 4.0 + SQL Server 2014 atau .SqlServer.Smo \Jika Anda ingin menghilangkan database sistem dan tabel ReportServer (jika diinstal):
Ini berfungsi pada Sql Server 2008/2012/2014. Sebagian besar kueri berasal dari prosedur tersimpan sistem " sp_databases ". Saya hanya menghapus kolom yang tidak dibutuhkan dan menambahkan kondisinya.
sumber
Dalam SQL Server 7, dbid 1 hingga 4 adalah sistem dbs.
sumber
Tidak yakin apakah ini akan menghilangkan database server Laporan karena saya tidak menjalankannya, tetapi dari apa yang saya lihat, saya bisa menghilangkan database milik pengguna sistem dengan SQL ini:
sumber
mungkin saya seorang dodo!
show databases;
bekerja untukku.sumber
Dalam SQL Server 2008 R2 ini berfungsi:
Dan hanya daftar basis data yang dibuat oleh pengguna.
sumber
owner_sid=1
berartisa
pemilik, tidak ada yang istimewa tentang itu.Anda dapat menemukan semua nama basis data dengan ini: -
sumber
Untuk mengecualikan basis data sistem:
sumber
sid
kolomnya di atassys.databases
mejaowner_sid