2011-04-13 100 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 
相關問題