2012-06-15 32 views
0

可能重复:
How can I determine installed SQL Server instances and their versions?如何检查是否SQL Server 2008的版本或更高版本在C#Windows窗体

我一直在寻找,并不能找到一种方法,通过注册表来验证如果安装了sql server并且至少是2008版的。 因为它似乎对于每个版本他们改变路径中的某些东西,或者我只是没有看到它。

谢谢你在前进, 米格尔·索萨

+0

即时通讯抱歉,但它不是一回事。 1º我想知道如果SQL Server的版本是10.0(thnx @AaronBertrand)或更新。 2º我没有登录访问实例。所以我不能执行t-sql也不ado.net –

回答

2

您可以在下面的键扫描实例名称:

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

从那里,你可以采取每个名称和数据列(如命名实例'SQL2008' 可能会说 'MSSQL10.SQL2008'),并通过实例标识符( 'MSSQL.SQL2008')追加到该REG路径找到的版本:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ 
    MSSQL10.SQL2008\MSSQLServer\CurrentVersion\ 

在该密钥中,将会有一个名为“CurrentVersion”的条目,数据值将具有版本号。

这将返回一个字符串,如11.0.2316.0。在这种情况下,你只关心小数点后的字符。如果这反映10.0或更高,那是SQL Server 2008或更高版本(10.0 = 2008,10.5 = 2008 R2,11.0 = 2012)。如果这反映了9.0或更少,这是2008年之前(9.0 = 2005年,8.0 = 2000年等)。

+0

这假设有一个活动的数据库连接;这是确定**是否安装了SQL Server的几个步骤。 – CodeCaster

+0

@AaronBertrand对不起,我应该更具体,我没有访问服务器,因为我不知道它的安装,所以我不能执行T-SQL。 –

+0

啊,我错过了那部分。好的,是的,你不能使用T-SQL,因为即使你确定已经安装了一个实例,你也可能根本无法连接它。我想你会得到足够的答案,但你需要去http://stackoverflow.com/questions/141154/how-can-i-determine-installed-sql-server-instances-and-their-versions和http://stackoverflow.com/questions/949852/determine-version-of-sql-server-from-ado-net并结合一些答案。 –

相关问题