2011-04-13 146 views
1

很多人已经问及如何使用诸如@@ VERSION或SERVERPROPERTY('productversion')来确定sql服务器的版本,但是这些工作都不适用于sql server compact edition 4.如何确定Compact Edition 4到SQL Server 2008的SQL Server版本号?

是否有一些通用支持的方法来确定通过sql查询或ado.net代码使用紧凑版一直到完整的sql server的哪个sql server版本和版本?

我想确定哪个确切版本的SQL服务器正在使用,所以我知道从我的代码发出什么类型的分页查询。 Sql CE 4使用与sql server 2011(denali)相同的新分页查询格式,而2005和2008使用自己的方法,这在CE 4中是不支持的。

我认为答案是这是不可能的,但我只是想确保我没有忽略某些东西。

回答

0

我真的不使用SQL Server了,但这里是我在这个小问题的尝试。

对于紧凑版本的版本4,以下版本应该为您提供版本和版本。

var ver = new System.Data.SqlServerCe.SqlCeConnection().ServerVersion; 

和下面的应该给你的程序集版本

var version = typeof(System.Data.SqlServerCe.SqlCeConnection).Assembly.GetName().Version; 
+0

谢谢Gareth,这是我最终做的事情,不是我想做的事情,但它做到了这一点。 – JohnC 2011-04-17 23:01:05

+0

一点都不优雅,但我很高兴它为你工作。 – Gareth 2011-04-18 07:02:04

0

看看this blog post。它有一个link to download实用程序,用于检测您正在运行的SQL Compact版本的版本。它也有一个link to the source code为您可能感兴趣的实用程序。

+0

杰森您好,对不起,我是不够具体,我猜。我需要一种方法来通过sql查询知道我连接的sql服务器的版本,以便我的代码可以发出适当的分页查询格式。 – JohnC 2011-04-15 05:04:38

+0

@JohnC,看看SQL Server精简版函数列表(http://technet.microsoft.com/en-us/library/ms174077%28SQL.100%29.aspx)它看起来不像是一个函数通过TSQL返回正在运行的版本。 – 2011-04-15 15:34:51

-2

来看,这种

SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition') 

查看详情here

+0

该链接中的方法将适用于所有版本的SQL Server,但Compact版本是O​​P在其问题中列出的版本之一。 – 2011-04-15 15:39:26

+0

Yikes!我*在我的问题中写了*该方法。 :( – JohnC 2011-04-17 22:59:00

0

您可以使用PowerShell,在Windows 7或更高版本,它涉及预默认安装的。使用以下命令行:

[System.Reflection.Assembly]::LoadFrom("SQLCeAssembly.dll").GetName().Version 

输出这样的:

Major Minor Build Revision 
----- ----- ----- -------- 
4  0  0  0 
相关问题