지원되는 .NET Framework 라이브러리
SQL Server에 호스팅된 CLR(공용 언어 런타임)을 사용하면 관리되는 코드로 저장 프로시저, 트리거, 사용자 정의 함수, 사용자 정의 형식 및 사용자 정의 집계를 작성할 수 있습니다. .NET Framework 클래스 라이브러리에 있는 기능을 사용하면 문자열 조작, 고급 수학 연산, 파일 액세스, 암호화 등에 대한 기능을 제공하는 미리 작성된 클래스에 액세스할 수 있습니다. 임의의 관리되는 저장 프로시저, 사용자 정의 형식, 트리거, 사용자 정의 함수 또는 사용자 정의 집계에서 이러한 클래스에 액세스할 수 있습니다.
[!참고]
GAC(전역 어셈블리 캐시)에서 지원되지 않는 어셈블리를 서비스 또는 업그레이드하면 SQL Server 응용 프로그램 작동이 중지될 수 있습니다. 이는 GAC의 라이브러리를 제공하거나 업그레이드할 때 SQL Server 내부의 어셈블리는 업데이트되지 않기 때문입니다. 어셈블리가 SQL Server 데이터베이스와 GAC에 모두 포함되어 있는 경우 해당 어셈블리의 두 복사본이 정확하게 일치해야 합니다. 일치하지 않으면 SQL Server CLR 통합에서 해당 어셈블리를 사용할 때 오류가 발생합니다. 지원되지 않는 .NET Framework 어셈블리를 비롯하여 데이터베이스에도 등록된 GAC의 어셈블리를 서비스 또는 업그레이드하는 경우 ALTER ASSEMBLY 문을 사용하여 SQL Server 데이터베이스 내의 어셈블리 복사본도 서비스 또는 업그레이드해야 합니다. 자세한 내용은 기술 자료 문서 949080을 참조하십시오.
지원되는 라이브러리
SQL Server 2005부터 SQL Server에는 테스트를 통해 SQL Server와의 상호 작용에 대한 안정성 및 보안 표준을 충족하는 것이 확인된 지원되는 .NET Framework 라이브러리 목록이 포함되어 있습니다. 지원되는 라이브러리는 서버에 명시적으로 등록하지 않고도 코드에서 사용할 수 있습니다. SQL Server가 GAC(전역 어셈블리 캐시)에서 직접 해당 라이브러리를 로드합니다.
SQL Server의 CLR 통합에서 지원되는 라이브러리/네임스페이스는 다음과 같습니다.
CustomMarshalers
Microsoft.VisualBasic
Microsoft.VisualC
mscorlib
System
System.Configuration
System.Data
System.Data.OracleClient
System.Data.SqlXml
System.Deployment
System.Security
System.Transactions
System.Web.Services
System.Xml
System.Core.dll
System.Xml.Linq.dll
지원되지 않는 라이브러리
지원되지 않는 라이브러리도 관리되는 저장 프로시저, 트리거, 사용자 정의 함수, 사용자 정의 형식 및 사용자 정의 집계에서 호출할 수 있습니다. 지원되지 않는 라이브러리는 CREATE ASSEMBLY 문을 사용하여 먼저 SQL Server 데이터베이스에 등록해야 코드에서 사용할 수 있습니다. 지원되지 않는 라이브러리를 서버에 등록하고 실행하는 경우 보안과 안정성을 검토하여 테스트해야 합니다.
예를 들어 System.DirectoryServices 네임스페이스는 지원되지 않습니다. UNSAFE 권한을 사용하여 System.DirectoryServices.dll 어셈블리를 등록해야 코드에서 호출할 수 있습니다. System.DirectoryServices 네임스페이스의 클래스는 SAFE 또는 EXTERNAL_ACCESS에 대한 요구 사항을 충족하지 않으므로 UNSAFE 권한이 필요합니다. 자세한 내용은 CLR 통합 프로그래밍 모델 제한 사항 및 CLR 통합 코드 액세스 보안을 참조하십시오.