以编程方式检测SQL Server版本
我正在将C与SMO结合使用,并试图检测我连接的SQL Server版本,例如企业版和标准版。我知道如何获取版本信息,但这只能告诉我SQL Server的版本,例如SQL Server 2008和SQL Server 2005 是否有人知道如何获得实际的产品版本,如企业版、标准版 我需要这些信息,因为某些SQL Server功能仅适用于企业。因此,我可以尝试调用它们并捕获异常,但我更喜欢预先检测以编程方式检测SQL Server版本,sql,sql-server,smo,Sql,Sql Server,Smo,我正在将C与SMO结合使用,并试图检测我连接的SQL Server版本,例如企业版和标准版。我知道如何获取版本信息,但这只能告诉我SQL Server的版本,例如SQL Server 2008和SQL Server 2005 是否有人知道如何获得实际的产品版本,如企业版、标准版 我需要这些信息,因为某些SQL Server功能仅适用于企业。因此,我可以尝试调用它们并捕获异常,但我更喜欢预先检测 谢谢 我一直使用@@Version,例如选择@@Version并将结果添加到代码中,但本文看起来非常方
谢谢 我一直使用@@Version,例如选择@@Version并将结果添加到代码中,但本文看起来非常方便; 根据链接,使用SERVERPROPERTY的唯一问题是。。。这不适用于较旧版本的SQL Server
select @@version
返回版本和哪个版本。在这里:
Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)
Nov 24 2008 13:01:59
Copyright (c) 1988-2005 Microsoft Corporation
Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
在我的系统中返回
9.00.1399.06, RTM, Express Edition
这项技术似乎只适用于SQL Server 2000或更高版本,如果您的任何数据库为7.0或更低版本,您将必须使用@@Version并像其他人发布的那样操作结果。看起来您可能可以通过SMO和服务器对象来执行此操作。有一些属性,比如Information.Edition,看起来它应该做你想做的事情。检查注册表。这个问题有一个很好的方法,可以从PowerShell脚本中进行调整:
我很感激包括@@Version在内的所有答案,但我真的在寻找这样的答案。我需要Serverobject上的Information.Edition属性,尽管我知道它是枚举而不是字符串。
9.00.1399.06, RTM, Express Edition