簡體   English   中英

如何檢查已安裝的實例是完整SQL Server還是僅SQL Server Express

[英]How to check whether the installed instance is full SQL Server or just SQL Server Express

在我的一個項目中,首先我需要檢查機器上是否安裝了SQL Server。 我這樣做的代碼如下所示:

 var sqlRegistry = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Microsoft SQL Server", true);

 if (sqlRegistry == null) 
 { }
 else 
 { }

但是在else部分,我需要知道安裝的SQL Server是“僅”SQL Server Express還是完整的SQL Server版本。

我該怎么做?

SQL-Server似乎有一個內置函數SERVERPROPERTY ,因此您應該能夠通過SQL查詢服務器,如:

SELECT SERVERPROPERTY('EngineEdition')

您可以在注冊表項中查看已安裝的實例:

Software\Microsoft\Microsoft SQL Server\InstalledInstances

這將包含所有已安裝的實例,例如在我的系統上:

MSSQLSERVER
SQLEXPRESS

使用此值進入此注冊表項:

Software\Microsoft\Microsoft SQL Server\Instance Names\SQL

獲取下一步所需的實際實例名稱。

現在,如果你去查看注冊表項:

Software\Microsoft\Microsoft SQL Server\(InstanceName)\Setup\Edition

在那里你有一個值,如Express for SQL Server Express,或Developer Edition或其他東西。 這應該告訴您是否有Express或另一個“完整版”的SQL Server

這里有一些代碼可以在服務器上安裝MS SQL Server Editions到基於@marc_s的控制台:

//This line open Registry with x64 View from x86 process. Usually SQL server installed in x64 edition, otherwise you should check x86
var localMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
var msSQLServer = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server");
var instances = (string[])msSQLServer.GetValue("InstalledInstances");

foreach (var instance in instances)
{
    var insNames = localMachine.OpenSubKey(@"Software\Microsoft\Microsoft SQL Server\Instance Names\SQL");
    var realNameInstanse = (string)insNames.GetValue(instance);
    var sqlEditionRegistry = localMachine.OpenSubKey(string.Format(@"Software\Microsoft\Microsoft SQL Server\{0}\Setup", realNameInstanse));
    var edition = (string)sqlEditionRegistry.GetValue("Edition");
    Console.WriteLine("Instance {0}, RealName {2}, - Edition: {1}", instance, edition, realNameInstanse);
}

這是基於本文末尾列表的版本列表:

  • 標准版

  • 64位版

  • 快遞版

  • 開發人員版

  • 企業版

  • 工作組版

  • 標准

  • 分析服務

  • 開發人員

  • 企業

  • 企業評估

  • 表達

  • 快遞與高級服務

  • 集成服務

  • 數據中心

  • 報告服務

  • 小企業標准版

  • 卷筒紙

  • 工作組

  • 商業智能

  • 企業核心

要檢查sql server版本,可以查詢@@version

execute select @@version

輸出包括:

  1. SQL服務器版本
  2. SQL服務器版
  3. 安裝最新補丁
  4. 計算機的處理器(32位或64位)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM