Bagaimana Anda menemukan versi / edisi SQL Server tanpa SSMS diinstal?


20

Bagaimana cara mengetahui edisi mana yang diinstal tanpa studio manajemen diinstal? Saya memiliki server yang berfungsi sebagai manajer lisensi untuk perangkat lunak lain. Setelah menyelidiki peringatan penggunaan RAM yang tinggi, saya menemukan bahwaproses sqlservr.exe menghabiskan hampir 2 GB RAM.

Saya melihat melalui menu program dan menemukan bahwa manajer konfigurasi telah diinstal, jika tidak, itu adalah tulang yang telanjang. Saya mengklik properti file EXE dan menemukan 10.50.1600.1, tetapi tidak ada tempat yang saya temukan yang menyatakan apakah itu Express, Dev, STN, ENT, dll.

Jika saya harus menebak, ini adalah edisi ekspres, tetapi saya ingin tahu apakah ada tanda yang jelas.

Pembaruan: @ Bob - File memberi tahu saya apa yang saya tahu, bukan edisi.

@valo - Saya mendapatkan kesalahan berikut ketika saya menjalankan perintah itu dan saya benar-benar memverifikasi nama pipa diaktifkan:

HResult 0x35, Level 16, Negara 1 Penyedia Pipa Bernama: Tidak dapat membuka koneksi ke SQL Server [53]. Sqlcmd: Kesalahan: Microsoft SQL Server Native Client 10.0: Kesalahan spesifik terkait jaringan atau instance-> telah terjadi saat membuat koneksi ke SQL Server. Server tidak ditemukan atau tidak dapat diakses. Periksa apakah nama instance sudah benar dan apakah SQL Server dikonfigurasi> untuk mengizinkan koneksi jarak jauh. Untuk informasi lebih lanjut, lihat SQL Server Books Online .. Sqlcmd: Kesalahan: Microsoft SQL Server Native Client 10.0: Batas waktu masuk berakhir.

@ Thomas - Saya perhatikan Stock Keeping Unit Name sebelum saya mengajukan pertanyaan, tapi itu kelihatannya terlalu mudah, saya kira kecurigaan awal saya benar.

Jawaban:


18

Ini dapat dilakukan melalui WMI (diakses melalui PowerShell dalam contoh saya di bawah ini). Yang saya lakukan adalah melihat properti ("SKUNAME") dari layanan SQL Server, melalui SqlServiceAdvancedPropertykelas. Catatan, ada beberapa variabel khusus lingkungan yang perlu diatur sesuai di bagian atas kode.

$ComputerName = "YourComputerName"
$ServiceName = 'YourEngineServiceName'
$PropertyName = "SKUNAME"

# retrieve the most current version of the ComputerManagement namespace
#
$ComputerManagementNamespace =
    (Get-WmiObject -ComputerName $ComputerName -Namespace "root\microsoft\sqlserver" -Class "__NAMESPACE" |
        Where-Object {$_.Name -like "ComputerManagement*"} |
        Select-Object Name |
        Sort-Object Name -Descending |
        Select-Object -First 1).Name
 
if ($ComputerManagementNamespace -eq $null) {
    Write-Error "ComputerManagement namespace not found"
}
else {
    $ComputerManagementNamespace = "root\microsoft\sqlserver\" + $ComputerManagementNamespace
} 

# get the property and its value
#
Get-WmiObject -ComputerName $ComputerName -Namespace $ComputerManagementNamespace -Class "SqlServiceAdvancedProperty" |
    Where-Object {
        $_.ServiceName -eq $ServiceName -and
        $_.PropertyName -eq $PropertyName
    } |
    Select-Object @{Name = "ComputerName"; Expression = { $ComputerName }},
        ServiceName,
        @{Name = "PropertyValue"; Expression = {
            if ($_.PropertyValueType -eq 0) {
                $_.PropertyStrValue
            }
            else {
                $_.PropertyNumValue
            }
        }}

Demikian juga, informasi yang sama ini dapat ditemukan langsung di alat Manajer Konfigurasi Server SQL. Setelah Anda membukanya, klik kanan pada layanan SQL Server Anda dan masuk ke Properties . Kemudian klik pada tab Advanced dan lihat kunci Stock Keeping Unit Name . Di sana Anda akan menemukan edisi apa yang Anda gunakan.


23

Anda dapat mencoba alat baris perintah:

C:\>sqlcmd -S [SERVER] -d [DB_NAME] -E -Q "SELECT @@VERSION"

18

Jika layanan SQL Server berjalan (yang didasarkan pada deskripsi Anda, itu) memeriksa log galat SQL Server. Anda tidak perlu menginstal SSMS untuk melakukan ini karena ini hanya file teks. Lokasi file dapat bervariasi tergantung pada cara menginstalnya, tetapi Books Online menunjukkan lokasi default di sini .

Entri pertama dalam log harus berisi informasi versi / edisi.

Sunting: Terlepas dari komentar dalam pertanyaan di atas, ini pasti memberi tahu Anda edisi:

2014-06-08 00:05:00.050 spid158      Microsoft SQL Server 2012 (SP1) - 11.0.3381.0 (X64) 

Aug 23 2013 20:08:13 

Copyright (c) Microsoft Corporation

Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.2 <X64> (Build 9200: )

12

Jawaban cepat

Jalankan saja berikut ini:

{InstanceHome}\MSSQL\Binn\sqlservr.exe -v [-s InstanceName]

NOTE ABOUT SQL Server Express LocalDB: LocalDB can only be determined by the
existence of the following folder:

C:\Program Files\Microsoft SQL Server\{SQL Server Version: 110, 120, etc}\LocalDB\Binn

Running "sqlserver.exe -v" doesn't help as it reports as being "Developer Edition", and
searching the Registry it reports as being "Express Edition".

Metode ini selalu berfungsi, tidak seperti solusi lain yang tidak akan berfungsi saat:

  • Anda tidak ingin menulis program (misalnya, PowerShell)?
  • Alat Klien belum diinstal (diperlukan untuk menggunakan SQLCMD.EXE)?
  • Tidak ada file log SQL Server, atau tidak ada file log yang berisi peristiwa mulai / mulai kembali?
  • SQL Server tidak berjalan (karenanya SELECT @@VERSION;bukan merupakan pilihan)?

Contoh 1
Jika Anda hanya menginstal satu Mesin Virtual, Anda tidak perlu menggunakan -ssakelar:

C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn>sqlservr.exe -v

Pengembalian:

2015-08-01 11:40:11.63 Server      Logging to event log is disabled. Startup option '-v' is supplied, either from the registry or the command prompt.
2015-08-01 11:40:11.63 Server      Microsoft SQL Server 2012 - 11.0.5343.0 (X64)
        May  4 2015 19:11:32
        Copyright (c) Microsoft Corporation
        Developer Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )

2015-08-01 11:40:11.63 Server      (c) Microsoft Corporation.
2015-08-01 11:40:11.63 Server      All rights reserved.
2015-08-01 11:40:11.63 Server      Server process ID is 3824.
2015-08-01 11:40:11.63 Server      System Manufacturer: '{CompanyName}', System Model: '{ModelNumber}'.
2015-08-01 11:40:11.63 Server      Authentication mode is MIXED.
2015-08-01 11:40:11.63 Server      The service account is '{AccountName}'. This is an informational message; no user action is required.
2015-08-01 11:40:11.63 Server      SQL Server shutdown has been initiated

Contoh 2
Jika Anda memiliki beberapa Mesin Virtual yang diinstal pada mesin, Anda juga perlu menggunakan -ssakelar untuk menentukan Mesin Virtual mana yang Anda minati, jika tidak ia bisa mencampurkan info versi:

C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS2014\MSSQL\Binn>sqlservr.exe -v
       -s SQLEXPRESS2014

Pengembalian:

2015-08-01 12:01:13.13 Server      Logging to event log is disabled. Startup option '-v' is supplied, either from the registry or the command prompt.
2015-08-01 12:01:13.13 Server      Microsoft SQL Server 2014 - 12.0.4213.0 (X64)
        Jun  9 2015 12:06:16
        Copyright (c) Microsoft Corporation
        Express Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )

2015-08-01 12:01:13.13 Server      UTC adjustment: -4:00
2015-08-01 12:01:13.13 Server      (c) Microsoft Corporation.
2015-08-01 12:01:13.13 Server      All rights reserved.
2015-08-01 12:01:13.13 Server      Server process ID is 1712.
2015-08-01 12:01:13.13 Server      System Manufacturer: '{CompanyName}', System Model: '{ModelNumber}'.
2015-08-01 12:01:13.13 Server      Authentication mode is WINDOWS-ONLY.
2015-08-01 12:01:13.13 Server      The service account is '{AccountName}'. This is an informational message; no user action is required.
2015-08-01 12:01:13.13 Server      SQL Server shutdown has been initiated

informasi tambahan

Cara tercepat, termudah, dan paling dapat diandalkan untuk menentukan informasi versi suatu program adalah dengan meminta informasi itu dari program tersebut. Sebagian besar program ( * .COM dan * .EXE ) memiliki saklar baris perintah / flag / parameter / option / dealy-ma-bob yang akan menampilkan informasi bantuan dan / atau versi.

Bergantung pada program itu sendiri, saklar baris perintah akan diawali dengan salah satu dari yang berikut:

  • [tidak ada / nada]
  • -
  • -
  • /

Dan, sekali lagi tergantung pada program itu sendiri, saklar baris perintah akan menjadi salah satu dari yang berikut:

  • Paling umum:
    • v
    • versi
  • Terkadang termasuk dalam informasi bantuan umum:
    • ?
    • h
    • membantu

{Contoh-contoh SQL Server yang ditunjukkan di atas}

Utilitas command-line SQLCMD.EXE, di sisi lain, menggunakan -vsakelar untuk meneruskan nilai variabel ke skrip SQL, sehingga hanya menampilkan info versi dalam tampilan info umum:

C:\>sqlcmd /?
Microsoft (R) SQL Server Command Line Tool
Version 11.0.2100.60 NT x64
Copyright (c) 2012 Microsoft. All rights reserved.

usage: Sqlcmd            [-U login id]          [-P password]
  [-S server]            [-H hostname]          [-E trusted connection]
  ...
  [-v var = "value"...]  ...
  ...
  [-? show syntax summary]

NotePad, bagaimanapun, hanya memiliki seperangkat switch baris perintah yang sangat terbatas , dan tidak ada satupun yang menampilkan info versi.


Alternatif, metode terbaik:

  • Periksa registri:

    Kunci: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ {VersionNumber} \ Tools \
    Nama Penyiapan : Edisi

    • Jika Anda tahu nomor versi (mis. SQL Server 2012 = 110, SQL Server 2014 = 120, dll), Anda dapat Edisi untuk itu secara khusus dengan menjalankan yang berikut ini pada prompt perintah:

      REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\{VersionNumber}\Tools\Setup" /v /e /f Edition

      Mengembalikan satu entri yang mirip dengan yang berikut:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\Setup
          Edition    REG_SZ    Developer Edition
    • Jika Anda ingin melihat Edisi apa pun yang akan diinstal, jalankan yang berikut ini pada prompt perintah:

      REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server" /s /v /e /f Edition

      Mengembalikan satu atau lebih entri yang mirip dengan yang ditunjukkan di atas dan berikut ini:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\Setup
          Edition    REG_SZ    Express Edition
  • Periksa log instalasi:

    C: \ Program Files \ Microsoft SQL Server \ {Versi SQL Server: 110, 120, dll} \ Setup Bootstrap \ Log \ {date_time} \ Detail.txt

    Untuk string "IsExpressSku":

    (03) 2014-09-05 16:53:44 SQLEngine: --EffectiveProperties: IsExpressSku = Benar

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.