다음을 통해 공유


지원되는 .NET Framework 라이브러리

적용 대상: SQL Server

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(9.x)부터 SQL Server에는 SQL Server와의 상호 작용을 위한 안정성 및 보안 표준을 충족하는지 확인하기 위해 테스트된 지원되는 .NET Framework 라이브러리 목록이 있습니다. 지원되는 라이브러리는 코드에서 사용되기 전에 서버에 명시적으로 등록할 필요가 없습니다. SQL Server는 GAC(전역 어셈블리 캐시)에서 직접 로드합니다.

SQL Server에서 CLR 통합에서 지원하는 라이브러리/네임스페이스는 다음과 같습니다.

  • CustomMarshalers
  • Microsoft.VisualBasic
  • Microsoft.VisualC
  • mscorlib
  • 시스템
  • System.Configuration
  • System.Core
  • System.Data
  • System.Data.OracleClient
  • System.Data.SqlXml
  • System.Deployment
  • System.Security
  • System.Transactions
  • System.Web.Services
  • System.Xml
  • System.Xml.Linq

지원되지 않는 라이브러리

지원되지 않는 라이브러리도 관리되는 저장 프로시저, 트리거, 사용자 정의 함수, 사용자 정의 형식 및 사용자 정의 집계에서 호출할 수 있습니다. 지원되지 않는 라이브러리는 먼저 CREATE ASSEMBLY 문을 사용하여 SQL Server 데이터베이스에 등록해야 코드에서 사용할 수 있습니다. 지원되지 않는 라이브러리를 서버에 등록하고 실행하는 경우 보안과 안정성을 검토하여 테스트해야 합니다.

예를 들어 System.DirectoryServices 네임스페이스는 지원되지 않습니다. 코드에서 호출하려면 먼저 System.DirectoryServices.dll 어셈블리를 UNSAFE 권한으로 등록해야 합니다. System.DirectoryServices 네임스페이스의 클래스가 SAFE 또는 EXTERNAL_ACCESS 요구 사항을 충족하지 않으므로 UNSAFE 권한이 필요합니다. 자세한 내용은 CLR 통합 프로그래밍 모델 제한 및 CLR 통합 코드 액세스 보안을 참조하세요.

참고 항목

어셈블리 만들기
CLR 통합 코드 액세스 보안
CLR 통합 프로그래밍 모델 제한 사항