문제

데이터베이스가 지리 데이터 유형 및 공간 인덱스를 지원하는 경우 프로그래밍 방식으로 결정해야합니다.이러한 기능은 2008 년에 도입되었습니다.이 기능은이 기능에 의존 할 때 CLR이 활성화되어 있는지 확인해야합니다.이 일을하는 가장 신뢰할 수있는 방법은 무엇입니까?

도움이 되었습니까?

해결책

SQL Server 2008은 10.x 입니다.

SQL 및 쿼리 를 사용할 수 있습니다."http://msdn.microsoft.com/en-us/library/ms188345.aspx"rel="noreferrer"> sys.configations

SELECT
   PARSENAME(CAST(SERVERPROPERTY('ProductVersion') AS varchar(20)), 3) AS MajorVersion, 
   value_in_use
FROM 
   sys.configurations
WHERE
   name = 'clr enabled';
.

편집 : 첨가 된 캐스트

다른 팁

다음을 구문 분석합니다.

select @@VERSION

SELECT * FROM sys.configurations WHERE name = 'clr enabled'

SELECT compatibility_level from sys.databases where name=db_name()
.

처럼 :

select
    CASE 
        WHEN LEFT(@@VERSION,25)='Microsoft SQL Server 2008' THEN 'Yes' 
        ELSE 'NO' 
    END AS OnSQLServer2008
    ,CASE value
         WHEN 0 THEN 'No'
         ELSE 'Yes'
     END AS [clr_enabled]
    ,(SELECT CASE compatibility_level WHEN 100 then 'Yes' ELSE 'No' END from sys.databases where name=db_name()) AS SQLServer2008CompatibilityMode
    FROM sys.configurations 
    WHERE name = 'clr enabled'
.

출력 :

OnSQLServer2008 clr_enabled SQLServer2008CompatibilityMode
--------------- ----------- ------------------------------
Yes             No          No

(1 row(s) affected)
.

상당히 자세한 문자열을 반환하는 SELECT @@VERSION를 사용할 수 있습니다.

를 사용하여 DB 호환성 수준을 쉽게 살펴 보는 것입니다.

select compatibility_level from sys.databases where name=db_name()
.

이것은 숫자를 반환합니다.빈번한 값은 다음과 같습니다.

80= SQL Server 2000

90= SQL Server 2005

100= SQL Server 2008

서버의 데이터베이스가 필요한 수준에 있음을 확인하는 데 추가 된 이점이 있으며 서버 자체가 특정 시스템 버전을 실행하는 것이 아니라

아래에 언급 된 쿼리를 사용하십시오

SELECT
SERVERPROPERTY('ProductVersion') AS ProductVersion,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('EngineEdition') AS EngineEdition;
.

벨로우즈 언급 된 버전을 찾으려면

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오> 여기에 이미지 설명

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top