CLR(공용 언어 런타임) 통합을 사용하여 데이터베이스 개체 작성

SQL Server와 .NET Framework CLR(공용 언어 런타임)을 통합하여 데이터베이스 개체를 작성할 수 있습니다. Microsoft SQL Server 내에서 실행되는 관리 코드를 "CLR 루틴"이라고 하는데 이러한 루틴에는 다음과 같은 항목이 포함됩니다.

  • 스칼라 반환 사용자 정의 함수(스칼라 UDF)

  • 테이블 반환 사용자 정의 함수(TVF)

  • UDP(사용자 정의 프로시저)

  • 사용자 정의 트리거

CLR 루틴은 관리 코드에서도 구조가 동일하고 클래스의 공용 및 정적(Microsoft Visual Basic .NET의 경우 공유) 메서드에 매핑됩니다. .NET Framework를 사용하면 루틴뿐만 아니라 UDT(사용자 정의 형식)와 사용자 정의 집계 함수도 정의할 수 있습니다. UDT와 사용자 정의 집계 함수는 .NET Framework 클래스 전체에 매핑됩니다.

각 .NET Framework 루틴 형식은 Transact-SQL 선언을 포함하며 SQL Server에서 Transact-SQL과 동등한 항목이 허용되는 모든 위치에서 사용할 수 있습니다. 예를 들어 스칼라 UDF는 모든 스칼라 식에 사용할 수 있고, TVF는 모든 FROM 절에 사용할 수 있습니다. 프로시저는 EXEC 문에서 호출되거나 클라이언트 응용 프로그램에서 호출될 수 있습니다.

[!참고]

쿼리 최적화 프로그램에서 적절하다고 판단할 경우 공용 언어 런타임에서 CLR 개체(사용자 정의 함수, 사용자 정의 형식 또는 트리거)의 실행은 여러 스레드(병렬 계획)에서 발생할 수 있습니다. 그러나 사용자 정의 함수는 데이터에 액세스하므로 직렬 계획에서 실행됩니다. SQL Server 2008 이전의 서버 버전에서 LOB 매개 변수를 포함하거나 값을 반환하는 사용자 정의 함수를 실행할 경우에도 직렬 계획에서 실행되어야 합니다. 자세한 내용은 병렬 쿼리 처리를 참조하십시오.

Visual Studio .NET 2003은 CLR 통합 프로그래밍에 사용할 수 없습니다. SQL Server에는 .NET Framework가 사전 설치되어 있고 Visual Studio .NET 2003에서는 .NET Framework 2.0 어셈블리를 사용할 수 없습니다.

다음 표에서는 이 섹션에서 다루는 항목을 나열합니다.