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
子树中)关于版本的信息等等
我有一个安装代码,它通过从注册表项
中读取版本号来检查安装的 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
子树中)关于版本的信息等等