2009-03-02 20 views
8

SMM ile C# kullanıyorum ve bağlandığım SQL Server'ın (örneğin, kuruluş, standart) hangi sürümünün çalıştığını bulmaya çalışıyorum. Sürüm bilgilerinin nasıl alınacağını biliyorum, ancak bu bana yalnızca SQL Server'ın hangi sürümünü kullandığını gösterir (ör. SQL Server 2008 ve SQL Server 2005).Program aracılığıyla SQL Server Edition'ı algılar

Gerçek ürün sürümünün nasıl elde edileceğini bilen var mı (ör. Kurumsal, standart)?

Bazı SQL Server özellikleri yalnızca kuruluş olduğundan bu bilgiye ihtiyacım var. Böylece, sadece onları aramak ve istisna yakalamak, ama ben çok fazla bir ön tanıma tercih ederim.

Teşekkürler!

cevap

6

SMO ve Sunucu nesnesi ile yapabileceksiniz gibi görünüyor. İstediğiniz şeyi yapması gerektiği gibi görünen Information.Edition gibi özellikler var.

+0

çalışır, ama gerçekten böyle bir şey arıyordu. Serverobject'teki Information.Edition özelliği, ihtiyacım olan şeydir (yine de bir dizi ve bir dizi değil). – manu08

4

Her zaman @@ Sürümünü kullandım (örn. SELECT @@ Sürüm ve kodu kodda manipluted), ancak bu makale oldukça kullanışlı görünüyor; http://support.microsoft.com/kb/321185

Bağlantıya göre SERVERPROPERTY kullanmayla ilgili tek sorun, bunun SQL Server'ın eski sürümüyle çalışmadığıdır.

3
select @@version 

Sürüm ve hangi sürümü döndürür. İşte: sistemimde

 
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) 
21
SELECT SERVERPROPERTY('productversion'), 
     SERVERPROPERTY ('productlevel'), 
     SERVERPROPERTY ('edition') 

tekniğin sadece veritabanları herhangi 7.0 veya daha az ise, sen gerekecek 2000 veya daha sonraki SQL Server üzerinde çalışır görünüyor

9.00.1399.06, RTM, Express Edition 

döndürür @@ Sürümünü kullanmak ve diğerlerinin gönderdiği sonuçları manipüle etmek için

+0

Ayrıca, SQL Azure CTP ben @@ Sürüm dahil tüm cevapları takdir –