2016-12-13 10 views
5

SQL Server 용 SQLCLR 기반 저장 프로 시저를 만들려고합니다. 아시다시피 여러 버전의 .NET 프레임 워크에 대해 DLL을 작성할 수 있습니다. 어떤 SQL Server 버전이 어떤 .NET Framework 버전을 지원 하는지를 설명하는 참조를 찾을 수 없습니다. 누구든지 나를 올바른 방향으로 인도 할 수 있습니까?어떤 버전의 .NET Framework SQL Server가 지원됩니까?

+1

[이 문서] (https : //로 blogs.msdn.microsoft.com/dohollan/2010/07/08/sql-server-2008-r2-sqlclr-net-framework-version/)이 질문 등에 대한 답변을 제공 할 것입니다. – dotNET

+1

@dotNET CLR (및 해당 버전)과 .NET Framework (및 해당 버전) 간의 차이점과 관계를 인식하지 못하는 경우 해당 기사가 오도 될 수 있습니다. 나는 버전에 대한 명확한 답변을 게시 할 것이다. –

답변

13

분명히 말해서 CLR의 단일 버전에는 일반적으로 함께 작동하는 .NET Framework의 여러 버전이 있습니다. 그러나 .NET Framework의 단일 버전은 특정 버전의 CLR에서만 작동합니다. 예를 들어 CLR 버전 2.0은 .NET Framework 버전 2.0, 3.0 및 3.5에서 작동하며 CLR 버전 4.0은 .NET Framework의 4.x 버전과 모두 작동합니다 (예 : 4.0, 4.5 [.x], 4.6 [. x], 4.7 [.x] 등). 프레임 워크 버전 관계에 대한 CLR 버전 차트를 보려면 .NET Framework Versions and Dependencies에 대한 MSDN 페이지를 참조하십시오.

SQLCLR 코드와 관련하여 SQL Server는 CLR의 단일 버전에서만 작동하며 특정 버전은 SQL Server 버전에 따라 다릅니다. SQL Server 2005, 2008 및 2008 R2는 CLR 버전 2에서만 작동합니다. CLR 버전 2는 .NET Framework 버전 2.0, 3.0 및 3.5에서만 작동하므로 SQL Server 2005, 2008 및 2008 R2는이 버전에서만 작동합니다. NET Framework 버전 2.0, 3.0 및 3.5.

물론 SQL Server 2005의 CLR 통합 기능 (초기 버전)은 .NET Framework 버전 2.0 (당시에 사용 가능했던 기능)을 기반으로 작성되었으므로 몇 가지 새로운 라이브러리가 있습니다. SQL Server 2005에서 수동으로 가져 오지 않고 작동하는 .NET Framework 버전 3.0 및 3.5 (예 : System.CoreSystem.Xml.Linq). SQL Server 2012, 2014, 2016 및 2017은 .NET Framework 버전 4.0, 4.5 [.x], 4.6 [.x] 및 4.7 [.x]에서 작동하는 CLR 버전 4에 정적으로 링크되어 있습니다. . 정보에 관해서

은, 하지.NET 프레임 워크 버전을 CLR 버전을보고하고, 모두 (.NET 코드) System.Environment.VersionSELECT [version] FROM sys.dm_clr_properties;에서 돌아왔다. 2.0 또는 4.0을보고하는 두 가지 사항을 Framework 버전 2.0 또는 4.0 만 사용할 수 있다는 의미로 혼동하지 않도록주의하십시오.

다행히 이전 버전과의 호환성으로 인해 CLR 2 Framework 버전 (2.0, 3.0 및 3.5)에 대해 컴파일 된 코드는 CLR 버전 4에 있더라도 SQL Server 2012 이상에서 다시 컴파일 할 필요없이 실행할 수 있습니다

따라서 타겟 프레임 워크 버전 2.0을 사용하는 것이 일반적으로 잘못 될 수는 없지만 2.0 이상의 프레임 워크 버전을 사용할 수 있습니다. 개발 SQLCLR 코드에서 심도 좀 더

, 내가 쓴 다음 문서 (그리고 일반적으로 시리즈), 체크 아웃 :

Stairway to SQLCLR Level 5: Development (Using .NET within SQL Server)

+0

@srutzky에 감사드립니다. "SQL Server 2005에 포함 된 .NET Framework 버전 2.0"은 무엇을 의미합니까? –

+0

@OgrishMan 그래, 나는 그 말을 잘하는 방법을 모르겠다. 나는 다만 잘게 잘기 위하여 새롭게했다. 기본적으로 .NET Framework 2.0에는 없으며 "지원되는 .NET Framework 라이브러리"목록에 포함되지 않은 .NET Framework 라이브러리가 두 가지 있습니다.그러나 SQL Server 2008을 코딩 할 때 존재했기 때문에 두 라이브러리를 "지원되는"목록에 추가 할 수있었습니다. –