我正在使用带有SMO的C#并尝试检测我正在连接的SQL Server版本(例如,企业版,标准版)。我知道如何获取版本信息,但这只能告诉我SQL Server的版本(例如,SQL Server 2008与SQL Server 2005)。
有谁知道如何获得实际的产品版本(例如,企业,标准)?
我需要此信息,因为某些SQL Server功能只是企业。因此,我可以尝试调用它们并捕获异常,但我更喜欢前期检测。
谢谢!
答案 0 :(得分:21)
SELECT SERVERPROPERTY('productversion'),
SERVERPROPERTY ('productlevel'),
SERVERPROPERTY ('edition')
我系统上的返回
9.00.1399.06, RTM, Express Edition
似乎此技术仅适用于SQL Server 2000或更高版本,如果您的任何数据库为7.0或更低,您将不得不使用@@版本并操纵其他人发布的结果
答案 1 :(得分:6)
看起来您可以通过SMO和Server对象来完成它。像Information.Edition这样的属性看起来应该做你想做的事。
答案 2 :(得分:4)
我一直使用@@ Version(例如SELECT @@ Version并在代码中操纵结果),但这篇文章看起来非常方便; http://support.microsoft.com/kb/321185
根据链接使用SERVERPROPERTY的唯一问题是,这不适用于旧版本的SQL Server。
答案 3 :(得分:3)
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)
答案 4 :(得分:0)
检查注册表。这个问题有一个很好的方法,您可以从PowerShell脚本中进行调整: