SQL 注册表中的 Server 2012 Express 版本

SQL Server 2012 Express version in registry

我有一个安装代码,它通过从注册表项

中读取版本号来检查安装的 SQL 服务器的版本
SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion 
-> current version.

我安装了 SQL Server 2012 Express,但此密钥不存在。

SQL Server 2012 (non-express) 确实有这个密钥。

在我将我的代码更改为实际 运行 获取版本的查询之前 - 是否有其他一些注册表项保存了明确的版本号?

谢谢。

我想你可以通过简单的查询(而不是去注册表)来完成:

select serverproperty('edition')

express 实例的结果:

Express Edition

非快递实例的结果:

Enterprise Edition (64-bit)

可以使用 select @@version

检索更多信息

您需要检查此密钥以获取计算机上安装的 实例 的列表:

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

这将列出所有可用实例。这些也是注册表项的名称,因此如果您找到 SQLEXPRESS 的项,它将有一个字符串值 - 在我的例子中,它是 MSSQL12.SQLEXPRESS.

使用该值,再次在注册表中查找:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\(instance-name)

这个注册表子树有很多关于这个特定实例的信息,包括(在 Setup 子树中)关于版本的信息等等