SQL 如何通过注册表查找sql​​ server实例的版本和版本

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/20042072/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 23:05:16  来源:igfitidea点击:

how to find the version and edition of sql server instance via registry

sqlsql-serversql-server-2008

提问by Abhishek Kumar

I am using below registry search to get the list of all sql server instance name. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL. How can i get the version and edition of instance name(s) return by above registry search?? What i am actually trying to accomplish here is that i want to upgrade the sql server instance (prior to version sql server 2008 R2) named say companyx (which we use for our named instance for our application ) to Sql server 2008 R2.

我正在使用下面的注册表搜索来获取所有 sql server 实例名称的列表。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL。如何通过上述注册表搜索获得实例名称的版本和版本?我在这里真正想要完成的是,我想将名为 say companyx(我们用于我们的应用程序的命名实例)的 sql server 实例(在 sql server 2008 R2 版本之前)升级到 Sql server 2008 R2。

回答by JDC

As you state: all installed instances can be found in :

正如您所说:所有已安装的实例都可以在以下位置找到:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL

Using the values of this instances you can go to:

使用此实例的值,您可以转到:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{INSTANCE DATA}\MSSQLServer\CurrentVersion

where {INSTANCE DATA} is the data of the keys in the first registry settings.

其中 {INSTANCE DATA} 是第一个注册表设置中的键的数据。

For example: I have a computer containing this keys:

例如:我有一台包含此键的计算机:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL]
"MSSQLSERVER2008"="MSSQL10_50.MSSQLSERVER2008"
"SQLEXPRESS2008R2"="MSSQL10_50.SQLEXPRESS2008R2"

=> meaning there are 2 instances: There version can be found here:

=> 表示有 2 个实例:可以在此处找到版本:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER2008\MSSQLServer\CurrentVersion]
"CurrentVersion"="10.50.4000.0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQLServer\CurrentVersion]
"CurrentVersion"="10.50.4000.0"

回答by vhadalgi

use serverproperty()

serverproperty()

SELECT
SERVERPROPERTY('ProductVersion') AS ProductVersion,
SERVERPROPERTY('Edition') AS ProductEdition

GO

OR try

或尝试

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion

回答by sqlquaker

Try this:

尝试这个:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.\Setup

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.\Setup

Look for values of Version and Edition -Regards

查找 Version 和 Edition 的值 - 问候