SSMS yüklü olmayan SQL Server sürümünü / sürümünü nasıl bulabilirsiniz?


20

Yönetim stüdyosu yüklenmeden hangi sürümün yüklendiğini nasıl öğrenebilirim? Başka bir yazılım için lisans yöneticisi olarak çalışan bir sunucum var. Yüksek bir RAM kullanım uyarısı incelendiğinde, sqlservr.exe işleminin yaklaşık 2 GB RAM kullandığını buldum .

Program menüsüne baktım ve konfigürasyon yöneticisinin kurulduğunu gördüm, aksi takdirde oldukça çıplak kemikler. EXE dosyasının özelliklerine tıkladım ve 10.50.1600.1 buldum, ancak Express, Dev, STN, ENT, vb.

Tahmin etmek zorunda kalsaydım, bu hızlı bir baskı, ama açık bir anlatım işareti olup olmadığını bilmek istedim.

Güncelleme: @Bob - Dosya bana baskıyı değil, bildiklerimi anlatıyor.

@valo - Bu komutu çalıştırdığımda aşağıdaki adı alıyorum ve adlandırılmış yöneltmelerin etkinleştirildiğini doğruladım:

HResult 0x35, Seviye 16, Durum 1 Adlandırılmış Borular Sağlayıcı: SQL Server bağlantısı açılamadı [53]. Sqlcmd: Hata: Microsoft SQL Server Yerel İstemci 10.0: SQL Server'a bağlantı kurulurken ağla ilgili veya örneğe özgü bir hata oluştu. Sunucu bulunamadı> veya erişilemiyor. Örnek adının doğru olup olmadığını ve SQL Server'ın uzak bağlantılara izin verecek şekilde yapılandırıldığını> kontrol edin. Daha fazla bilgi için SQL Server Books Online'a bakın. Sqlcmd: Hata: Microsoft SQL Server Yerel İstemci 10.0: Oturum açma zaman aşımı süresi doldu.

@thomas - Soruyu sormadan önce Stok Tutma Ünitesi Adını fark ettim , ama bu çok kolay görünüyordu, sanırım ilk şüphem doğru.

Yanıtlar:


18

Bu WMI aracılığıyla yapılabilir (aşağıdaki örneğimde PowerShell üzerinden erişilir). Tüm yaptığım SQL Server hizmetinin bir özelliği ("SKUNAME"), SqlServiceAdvancedPropertysınıf üzerinden bakıyor . Kodun üst kısmında buna göre ayarlanması gereken birkaç ortama özgü değişken olduğunu unutmayın.

$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
            }
        }}

Benzer şekilde, bu aynı bilgileri doğrudan SQL Server Configuration Manager aracında bulabilirsiniz. Açtıktan sonra SQL Server hizmetinize sağ tıklayın ve Özellikler'e gidin . Ardından Gelişmiş sekmesine tıklayın ve Stok Tutma Ünitesi Adı tuşuna bakın. Hangi sürümü kullandığınızı göreceksiniz.


23

Komut satırı aracını deneyebilirsiniz:

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

18

SQL Server hizmeti çalışıyorsa (açıklamanıza göre) SQL Server hata günlüğünü kontrol edin. Bunu yapmak için SSMS'ye ihtiyacınız yoktur, çünkü sadece bir metin dosyasıdır. Dosya konumu, nasıl yüklendiğine bağlı olarak değişebilir, ancak Çevrimiçi Kitaplar burada varsayılan konumu gösterir .

Günlükteki ilk giriş sürüm / sürüm bilgilerini içermelidir.

Düzenleme: Yukarıdaki sorudaki yoruma rağmen, bu kesinlikle baskıyı söylüyor:

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

Hızlı cevap

Sadece aşağıdakileri çalıştırın:

{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".

Bu yöntem, aşağıdaki durumlarda çalışmayan diğer çözümlerin aksine her zaman çalışır:

  • bir program yazmak istemiyor musunuz (örneğin, PowerShell)?
  • Araçları yüklü değil (SQLCMD.EXE kullanmak için gerekli)?
  • SQL Server günlük dosyası yok veya başlatma / yeniden başlatma olayları içeren bir günlük dosyası yok mu?
  • SQL Server çalışmıyor (bu nedenle SELECT @@VERSION;bir seçenek değildir)?

Örnek 1
Yüklü yalnızca tek bir Eşgörünüm varsa, -sanahtarı kullanmanız gerekmez :

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

İadeler:

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

Örnek 2
Makinede yüklü birden çok Eşgörünüm -svarsa, ilgilendiğiniz Eşgörünümü belirtmek için anahtarı da kullanmanız gerekir , aksi takdirde sürüm bilgilerini karıştırabilir:

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

İadeler:

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

ek bilgi

Bir programın sürüm bilgisini belirlemenin en hızlı, en kolay ve en güvenilir yolu, basitçe bu bilgileri programdan istemektir. Çoğu programda ( * .COM ve * .EXE ), yardım ve / veya sürüm bilgilerini görüntüleyecek bir komut satırı anahtarı / bayrak / parametre / seçenek / dealy-ma-bob vardır.

Programın kendisine bağlı olarak, komut satırı anahtarına aşağıdakilerden biri gelir:

  • [hiçbir şey / nada]
  • -
  • -
  • /

Ve yine programın kendisine bağlı olarak, komut satırı anahtarı aşağıdakilerden biri olacaktır:

  • En yaygın:
    • v
    • versiyon
  • Bazen genel yardım bilgisine dahil edilir:
    • ?
    • h
    • Yardım

{Yukarıda gösterilen SQL Server örnekleri}

Diğer taraftan, SQLCMD.EXE komut satırı yardımcı programı, -vdeğişken değerleri SQL komut dosyasına geçirmek için anahtarı kullanır , bu nedenle yalnızca genel bilgi ekranında sürüm bilgilerini görüntüler:

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]

Bununla birlikte, NotePad yalnızca çok sınırlı bir komut satırı anahtarı kümesine sahiptir ve hiçbiri sürüm bilgilerini görüntülemez.


Alternatif, sorunsuz yöntemler:

  • Kayıt defterini kontrol edin:

    Anahtar: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ {VersionNumber} \ Tools \ Setup
    Name: Edition

    • Sürüm numarasını biliyorsanız (örn. SQL Server 2012 = 110, SQL Server 2014 = 120, vb.), Özellikle komut isteminde aşağıdakileri çalıştırarak Sürüm için bunu yapabilirsiniz:

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

      Aşağıdakine benzer bir giriş döndürür:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\Setup
          Edition    REG_SZ    Developer Edition
    • Yüklenecek her şey için Sürümü görecekleriniz varsa, komut isteminde aşağıdakileri çalıştırın:

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

      Yukarıda gösterilene ve aşağıdakine benzer bir veya daha fazla giriş döndürür:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\Setup
          Edition    REG_SZ    Express Edition
  • Kurulum günlüğünü kontrol edin:

    C: \ Program Dosyaları \ Microsoft SQL Server \ {SQL Server Sürümü: 110, 120 vb.} \ Setup Bootstrap \ Log \ {date_time} \ Detail.txt

    "IsExpressSku" dizesi için:

    (03) 2014-09-05 16:53:44 SQLEngine: --Etkili Özellikler: IsExpressSku = Doğru

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.