Saya mencoba menentukan instance sql server / sql express apa yang telah saya instal (baik secara manual atau terprogram) tetapi semua contoh memberi tahu saya untuk menjalankan kueri SQL untuk menentukan ini yang mengasumsikan saya sudah terhubung ke instance tertentu .
224
Jawaban:
Di baris perintah:
atau
(Catatan: harus huruf kapital L)
Ini akan mencantumkan semua server sql yang diinstal di jaringan Anda. Ada opsi konfigurasi yang dapat Anda atur untuk mencegah SQL Server ditampilkan di daftar. Untuk melakukan ini...
Di baris perintah:
Dalam daftar protokol yang diaktifkan, pilih 'TCP / IP', lalu klik properti. Ada kotak centang untuk 'Sembunyikan server'.
sumber
C:\> sqllocaldb i
Anda bisa meminta nilai registri ini untuk mendapatkan versi SQL secara langsung:
Atau Anda dapat menanyakan nama instance Anda dan kemudian menggunakan sqlcmd dengan nama instance Anda yang Anda inginkan:
Untuk melihat nama contoh Anda:
Kemudian jalankan ini:
Jika Anda menggunakan C ++ Anda dapat menggunakan kode ini untuk mendapatkan informasi registri.
sumber
Semua instal yang diinstal harus muncul di Layanan Snap-In di Microsoft Management Console. Untuk mendapatkan nama contoh, buka Mulai | Jalankan | ketik Services.msc dan cari semua entri dengan "Sql Server (Nama Instance)".
sumber
Get-Service | ?{ $_.Name -like "MSSQL*" }
- T-SQL Query untuk menemukan daftar Instances Terpasang pada mesin
sumber
sa
bukan?Saya tahu utas ini agak lama, tetapi saya menemukan utas ini sebelum saya menemukan jawaban yang saya cari dan berpikir saya akan membagikannya. Jika Anda menggunakan SQLExpress (atau localdb) ada cara yang lebih sederhana untuk menemukan nama instance Anda. Pada tipe baris perintah:
Ini akan mencantumkan nama instance yang telah Anda instal secara lokal. Jadi nama server lengkap Anda harus menyertakan (localdb) \ di depan nama instance untuk terhubung. Juga, sqllocaldb memungkinkan Anda membuat instance baru atau menghapusnya serta mengonfigurasinya. Lihat: SqlLocalDB Utility .
sumber
Jika Anda hanya ingin melihat apa yang diinstal pada mesin yang sedang Anda masuki, saya pikir proses manual yang paling mudah adalah dengan hanya membuka Manajer Konfigurasi Server SQL (dari menu Start), yang menampilkan semua Layanan SQL (dan hanya layanan SQL) pada perangkat keras itu (berjalan atau tidak). Ini mengasumsikan SQL Server 2005, atau lebih besar; Rekomendasi dotnetengineer untuk menggunakan Konsol Manajemen Layanan akan menampilkan semua layanan, dan harus selalu tersedia (jika Anda menjalankan versi SQL Server yang lebih lama, misalnya).
Namun, jika Anda mencari proses penemuan yang lebih luas, Anda dapat mempertimbangkan alat pihak ketiga seperti SQLRecon dan SQLPing, yang akan memindai jaringan Anda dan membuat laporan semua contoh Layanan SQL yang ditemukan di server mana pun yang mereka akses. Sudah lama sejak saya menggunakan alat seperti ini, tapi saya terkejut dengan apa yang mereka temukan (yaitu, beberapa contoh yang saya tidak tahu ada). YMMV. Anda mungkin Google untuk detail, tetapi saya percaya halaman ini memiliki unduhan yang relevan: http://www.sqlsecurity.com/Tools/FreeTools/tabid/65/Default.aspx
sumber
SQL Server mengizinkan aplikasi untuk menemukan contoh SQL Server dalam jaringan saat ini. Kelas SqlDataSourceEnumerator memaparkan informasi ini kepada pengembang aplikasi, menyediakan DataTable yang berisi informasi tentang semua server yang terlihat. Tabel yang dikembalikan ini berisi daftar instance server yang tersedia di jaringan yang cocok dengan daftar yang disediakan ketika pengguna mencoba membuat koneksi baru, dan memperluas daftar drop-down yang berisi semua server yang tersedia di kotak dialog Connection Properties. Hasil yang ditampilkan tidak selalu lengkap. Untuk mengambil tabel yang berisi informasi tentang instance SQL Server yang tersedia, Anda harus terlebih dahulu mengambil enumerator, menggunakan properti Instance bersama / statis:
dari msdn http://msdn.microsoft.com/en-us/library/a6t1z9x2(v=vs.80).aspx
sumber
SqlDataSourceEnumerator
belum diimplementasikan, tetapi ada dalam daftar yang akan ditambahkan sesuai dengan masalah GitHub .SQL Server Browser Service http://msdn.microsoft.com/en-us/library/ms181087.aspx
sumber
Jika Anda tertarik untuk menentukan ini dalam skrip, Anda dapat mencoba yang berikut:
Catatan: grep adalah bagian dari alat gnuwin32
sumber
findstr
alih-alihgrep
untuk ini.Dari baris perintah Windows, ketik:
Di mana "server_name" adalah nama dari server jauh mana pun yang ingin Anda tampilkan contoh SQL.
Ini tentu saja memerlukan izin yang cukup.
sumber
Kueri ini akan memberi Anda nama server dan nama instance:
sumber
Saya memiliki masalah yang sama. Perintah "osql -L" hanya menampilkan daftar server tetapi tanpa nama instance (hanya instance SQL Sever lokal saya yang ditampilkan). Dengan Wireshark, sqlbrowser.exe (yang dapat ditemukan di folder bersama instalasi SQL Anda), saya menemukan solusi untuk masalah saya.
Contoh lokal diselesaikan dengan entri registri. Mesin virtual jarak jauh diselesaikan oleh siaran UDP (port 1434) dan SMB. Gunakan "sqlbrowser.exe -c" untuk mendaftar permintaan.
Konfigurasi saya menggunakan 1 adapter jaringan fisik dan 3 virtual. Jika saya menggunakan perintah "osql -L", sqlbrowser menampilkan permintaan dari salah satu adapter virtual (yang ada di segmen jaringan lain), bukan yang fisik. osql memilih adpater dengan metriknya. Anda dapat melihat metrik dengan perintah "route print". Untuk konfigurasi saya, tabel routing menunjukkan metrik yang lebih rendah untuk adaptor virtual kemudian untuk fisik. Jadi saya mengubah metrik antarmuka di properti jaringan dengan membatalkan pilihan metrik otomatis dalam pengaturan jaringan lanjutan. osql sekarang menggunakan adaptor fisik.
sumber
Satu lagi pilihan adalah menjalankan laporan penemuan SQLSERVER..pergi ke media instalasi sqlserver dan klik dua kali setup.exe
dan di layar berikutnya, buka alat dan klik laporan penemuan seperti yang ditunjukkan di bawah ini
Ini akan menunjukkan kepada Anda semua contoh hadir bersama dengan seluruh fitur..di bawah ini adalah snapshot pada pc saya
sumber
Saya baru saja menginstal Sql server 2008, tetapi saya tidak dapat terhubung ke instance database apa pun. Perintah @G Mastros yang diposting tidak mencantumkan instance aktif.
Jadi saya mencari layanan dan menemukan bahwa agen SQL server dinonaktifkan. Saya memperbaikinya dengan mengaturnya menjadi otomatis dan kemudian memulainya.
sumber
Saya memiliki masalah yang sama ketika saya menilai 100+ server, saya memiliki skrip yang ditulis dalam C # untuk menelusuri nama layanan yang terdiri dari SQL. Ketika contoh diinstal pada server, SQL Server menambahkan layanan untuk setiap contoh dengan nama layanan. Ini dapat bervariasi untuk versi yang berbeda seperti 2000 hingga 2008 tetapi pasti ada layanan dengan nama instance.
Saya mengambil nama layanan dan mendapatkan nama contoh dari nama layanan. Berikut adalah contoh kode yang digunakan dengan Hasil Kueri WMI:
sumber
Berikut adalah metode sederhana: pergi ke Mulai kemudian Program kemudian Microsoft SQL Server 2005 lalu Alat Konfigurasi kemudian Manajer Konfigurasi Server SQL lalu Konfigurasi Jaringan SQL Server 2005 lalu Di sini Anda dapat menemukan semua contoh diinstal ke mesin Anda.
sumber
Saya tahu ini adalah posting lama tapi saya menemukan solusi yang bagus dengan PoweShell di mana Anda dapat menemukan contoh SQL diinstal pada mesin lokal atau jarak jauh termasuk versi dan juga akan mendapatkan properti lainnya.
sumber
Perintah
OSQL -L
danSQLCMD -L
akan menampilkan semua contoh di jaringan .Jika Anda ingin memiliki daftar semua instance di server dan tidak merasa ingin melakukan scripting atau pemrograman, lakukan ini:
sqlsrvr.exe
gambarMesin virtual harus didaftar di kolom "Nama Pengguna" sebagai
MSSQL$INSTANCE_NAME
.Dan saya beranjak dari berpikir bahwa server yang buruk menjalankan 63 instance menjadi menyadari bahwa server tersebut menjalankan tiga (yang salah satunya berperilaku seperti pengganggu total dengan beban CPU ...)
sumber
Akan mendapatkan contoh permintaan reg SQL server "HKLM \ Software \ Microsoft \ Microsoft SQL Server \ Nama Instance \ SQL"
atau Gunakan SQLCMD -L
sumber
Jika dalam SSMS Anda, Anda mungkin merasa lebih mudah untuk menggunakan:
sumber