Làm thế nào để bạn tìm thấy phiên bản / phiên bản SQL Server mà không cài đặt SSMS?


20

Làm thế nào để tìm ra phiên bản nào được cài đặt mà không cần cài đặt phòng quản lý? Tôi có một máy chủ hoạt động như một trình quản lý giấy phép cho một phần mềm khác. Khi điều tra cảnh báo sử dụng RAM cao, tôi thấy rằng quá trình sqlservr.exe đang chiếm gần 2 GB RAM.

Tôi đã xem qua menu chương trình và thấy rằng trình quản lý cấu hình đã được cài đặt, nếu không, nó khá đơn giản. Tôi đã nhấp vào các thuộc tính của tệp EXE và tìm thấy 10.50.1600.1, nhưng không có nơi nào tôi thấy rằng đó là Express, Dev, STN, ENT, v.v.

Nếu tôi phải đoán, đây là một phiên bản thể hiện, nhưng tôi muốn biết liệu có một dấu hiệu rõ ràng nào không.

Cập nhật: @Bob - Tệp cho tôi biết những gì tôi biết, không phải phiên bản.

@valo - Tôi gặp lỗi sau khi chạy lệnh đó và tôi đã xác minh các đường ống có tên đã được bật:

HResult 0x35, Cấp 16, Nhà cung cấp ống được đặt tên theo trạng thái 1: Không thể mở kết nối đến SQL Server [53]. Sqlcmd: Lỗi: Microsoft SQL Server Native Client 10.0: Đã xảy ra lỗi liên quan đến mạng hoặc trường hợp cụ thể-> trong khi thiết lập kết nối với SQL Server. Máy chủ không> tìm thấy hoặc không thể truy cập. Kiểm tra xem tên cá thể có đúng không và nếu SQL Server được cấu hình> để cho phép kết nối từ xa. Để biết thêm thông tin, hãy xem Sách dành cho Máy chủ SQL trực tuyến .. Sqlcmd: Lỗi: Microsoft SQL Server Native Client 10.0: Hết thời gian đăng nhập đã hết hạn.

@thomas - Tôi nhận thấy Tên đơn vị giữ cổ phiếu trước khi tôi đặt câu hỏi, nhưng điều đó có vẻ quá dễ dàng, tôi đoán sự nghi ngờ ban đầu của tôi là chính xác.

Câu trả lời:


18

Điều này có thể được thực hiện thông qua WMI (được truy cập thông qua PowerShell trong ví dụ dưới đây của tôi). Tất cả những gì tôi đang làm là xem xét một thuộc tính ("SKUNAME") của dịch vụ SQL Server, thông qua SqlServiceAdvancedPropertylớp. Lưu ý, có một vài biến số dành riêng cho môi trường cần được đặt tương ứng ở đầu mã.

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

Tương tự, thông tin tương tự này có thể được tìm thấy trực tiếp trong công cụ Trình quản lý cấu hình máy chủ SQL. Khi bạn mở nó lên, nhấp chuột phải vào dịch vụ SQL Server của bạn và đi vào Thuộc tính . Sau đó nhấp vào tab Nâng cao và xem phím Tên đơn vị giữ hàng . Ở đó bạn sẽ tìm thấy phiên bản bạn đang sử dụng.


23

Bạn có thể thử công cụ dòng lệnh:

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

18

Nếu dịch vụ SQL Server đang chạy (dựa trên mô tả của bạn, thì đó là) kiểm tra nhật ký lỗi của SQL Server. Bạn không cần cài đặt SSMS để làm điều này vì đây chỉ là một tệp văn bản. Vị trí tệp có thể khác nhau tùy thuộc vào cách cài đặt, nhưng Sách trực tuyến hiển thị vị trí mặc định tại đây .

Mục đầu tiên trong nhật ký nên chứa thông tin phiên bản / phiên bản.

Chỉnh sửa: Mặc dù nhận xét trong câu hỏi trên, nhưng điều này chắc chắn sẽ cho bạn biết phiên bản:

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

Câu trả lời nhanh

Chỉ cần chạy như sau:

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

Phương pháp này luôn hoạt động, không giống như các giải pháp khác sẽ không hoạt động khi:

  • bạn không muốn viết chương trình (ví dụ: PowerShell)?
  • Công cụ khách hàng chưa được cài đặt (bắt buộc phải sử dụng SQLCMD.EXE)?
  • Không có tệp nhật ký SQL Server hoặc không có tệp nhật ký có chứa bất kỳ sự kiện bắt đầu / khởi động lại nào?
  • SQL Server không chạy (do đó SELECT @@VERSION;không phải là một tùy chọn)?

Ví dụ 1
Nếu bạn chỉ cài đặt một Instance duy nhất, bạn không cần sử dụng công -stắc:

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

Trả về:

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

Ví dụ 2
Nếu bạn đã cài đặt nhiều Trường hợp trên máy, bạn cũng cần sử dụng công -stắc để chỉ định Trường hợp nào bạn quan tâm, nếu không, nó có thể xen kẽ thông tin phiên bản:

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

Trả về:

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

thông tin thêm

Cách nhanh nhất, dễ nhất và đáng tin cậy nhất để xác định thông tin phiên bản của chương trình chỉ đơn giản là yêu cầu thông tin đó từ chương trình. Hầu hết các chương trình ( * .COM* .EXE ) có công tắc dòng lệnh / cờ / tham số / tùy chọn / dealy-ma-bob sẽ hiển thị trợ giúp và / hoặc thông tin phiên bản.

Tùy thuộc vào chính chương trình, công tắc dòng lệnh sẽ được bắt đầu bằng một trong các cách sau:

  • [không có gì / nada]
  • -
  • -
  • /

Và, một lần nữa tùy thuộc vào chính chương trình, công tắc dòng lệnh sẽ là một trong những điều sau đây:

  • Chung nhất:
    • v
    • phiên bản
  • Đôi khi có trong thông tin trợ giúp chung:
    • ?
    • h
    • Cứu giúp

{Ví dụ về máy chủ SQL được hiển thị ở trên}

Mặt khác, tiện ích dòng lệnh SQLCMD.EXE sử dụng công -vtắc để chuyển các giá trị biến vào tập lệnh SQL, do đó, nó chỉ hiển thị thông tin phiên bản trong màn hình hiển thị thông tin chung của nó:

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]

Tuy nhiên, NotePad chỉ có một bộ chuyển đổi dòng lệnh rất hạn chế và không ai trong số họ hiển thị thông tin phiên bản.


Phương pháp thay thế, không cầu kỳ:

  • Kiểm tra sổ đăng ký:

    Khóa: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ {VersionNumber} \ Tools \ Setup
    Name: Edition

    • Nếu bạn biết số phiên bản (ví dụ: SQL Server 2012 = 110, SQL Server 2014 = 120, v.v.), bạn có thể Phiên bản cho nó cụ thể bằng cách chạy đoạn mã sau tại dấu nhắc lệnh:

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

      Trả về một mục tương tự như sau:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\Setup
          Edition    REG_SZ    Developer Edition
    • Nếu bạn muốn xem Phiên bản cho bất cứ điều gì sẽ được cài đặt, hãy chạy phần sau tại dấu nhắc lệnh:

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

      Trả về một hoặc nhiều mục tương tự như mục được hiển thị ở trên và sau:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\Setup
          Edition    REG_SZ    Express Edition
  • Kiểm tra nhật ký cài đặt:

    C: \ Tệp chương trình \ Microsoft SQL Server \ {Phiên bản máy chủ SQL: 110, 120, v.v} \ Setup Bootstrap \ Log \ {date_time} \ Chi tiết.txt

    Đối với chuỗi "IsExpressSku":

    (03) 2014-09-05 16:53:44 SQLEngine: - Hiệu quả: IsExpressSku = True

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.