Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以编程方式检测SQL Server版本_Sql_Sql Server_Smo - Fatal编程技术网

以编程方式检测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并将结果添加到代码中,但本文看起来非常方

我正在将C与SMO结合使用,并试图检测我连接的SQL Server版本,例如企业版和标准版。我知道如何获取版本信息,但这只能告诉我SQL Server的版本,例如SQL Server 2008和SQL Server 2005

是否有人知道如何获得实际的产品版本,如企业版、标准版

我需要这些信息,因为某些SQL Server功能仅适用于企业。因此,我可以尝试调用它们并捕获异常,但我更喜欢预先检测


谢谢

我一直使用@@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