프로그래밍 방식으로 SQL Server Edition을 감지합니다
-
03-07-2019 - |
문제
SMO와 함께 C#을 사용하고있는 SQL Server (예 : Enterprise, Standard)의 판을 감지하려고합니다. 버전 정보를 얻는 방법을 알고 있지만 SQL Server 버전 (예 : SQL Server 2008 vs SQL Server 2005) 만 알려줍니다.
실제 제품 에디션 (예 : Enterprise, Standard)을 얻는 방법을 아는 사람이 있습니까?
일부 SQL 서버 기능은 엔터프라이즈 이므로이 정보가 필요합니다. 따라서, 나는 단지 그들을 부르고 예외를 포착하려고 노력할 수 있었지만 나는 선불 탐지를 선호합니다.
감사!
해결책
SMO와 서버 객체를 통해 수행 할 수있는 것 같습니다. 정보와 같은 속성이 있습니다.
다른 팁
SELECT SERVERPROPERTY('productversion'),
SERVERPROPERTY ('productlevel'),
SERVERPROPERTY ('edition')
내 시스템에서 반환됩니다
9.00.1399.06, RTM, Express Edition
이 기술은 SQL Server 2000 이상에서만 작동하는 것 같습니다. 데이터베이스가 7.0 이하이면 @@ 버전을 사용하고 다른 사람들이 게시 한 결과를 조작해야합니다.
나는 항상 @@ 버전을 사용했지만 (예 : 선택 @@ 버전과 코드에서 결과를 조작)이 기사는 매우 편리하게 보입니다.http://support.microsoft.com/kb/321185
링크에 따라 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)
레지스트리를 확인하십시오. 이 질문은 PowerShell 스크립트에서 적응할 수있는 좋은 방법이 있습니다.
제휴하지 않습니다 StackOverflow