2

SQL Server 2008 R2是我的安装程序先决条件之一。我知道我们需要使用RegistrySearch检查注册表项来检测 SQL Server。我在网上搜索过,但我对很多注册表项感到完全困惑。我已经在安装了 SQL Server 2008 R2 的机器上自行检查,并在注册表项下方找到。谁能告诉我哪个是正确的条目来检查?是否有任何其他标准注册表项来检测 SQL 服务器?

当前版本值为 10.5

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Redist\SQLBrowser\1033\CurrentVersion 

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Redist\SQLBrowser\CurrentVersion

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server 2008 Redist\SQLNCLI10\1033\CurrentVersion

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\100\Tools\ClientSetup\CurrentVersion
4

1 回答 1

2

目前,我进行以下搜索以检查已安装的内容。前两个告诉我 SqlServer 安装在任何版本。第二个告诉我是不是Sql 2008R2。然后我可以使用这些来决定是进行全新安装还是升级现有实例(我尚未测试这是否适用于安装的 Sql2012,我怀疑它是否会起作用,因为我不希望您可以“升级” Sql2012 到 Sql2008R2):

<util:RegistrySearch Root="HKLM"
                     Key="SYSTEM\CurrentControlSet\services\MSSQL$[SqlInstance]"
                     Result="exists"
                     Variable="SQLServerInstalled" />

<util:RegistrySearch Root="HKLM"
                     Key="SYSTEM\CurrentControlSet\services\MSSQLSERVER"
                     Result="exists"
                     Variable="DefaultSQLServerInstalled" />

<util:RegistrySearch Root="HKLM"
                     Key="SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.[SqlInstance]"
                     Result="exists"
                     Variable="SQLServer2008R2Installed" />

<util:RegistrySearch Root="HKLM"
                     Key="SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER"
                     Result="exists"
                     Variable="DefaultSQLServer2008R2Installed" />
于 2013-05-07T12:42:24.243 回答