CLR 사용자 정의 형식

적용 대상:SQL Server

SQL Server .NET FRAMEWORK CLR(공용 언어 런타임)에서 만든 어셈블리에 대해 프로그래밍된 데이터베이스 개체를 만드는 기능을 제공합니다. CLR에서 제공하는 풍부한 프로그래밍 모델을 활용할 수 있는 데이터베이스 개체에는 트리거, 저장 프로시저, 함수, 집계 함수 및 형식이 있습니다.

참고

CLR 코드를 실행하는 기능은 기본적으로 SQL Server OFF로 설정됩니다. CLR은 sp_configure 시스템 저장 프로시저를 사용하여 사용하도록 설정할 수 있습니다.

SQL Server 2005(9.x)부터 UDT(사용자 정의 형식)를 사용하여 서버의 스칼라 형식 시스템을 확장하여 SQL Server 데이터베이스에서 CLR 개체의 스토리지를 사용하도록 설정할 수 있습니다. UDT에는 각각 단일 SQL Server 시스템 데이터 형식으로 구성된 일반적인 별칭 데이터 형식과는 구별되는 여러 요소 및 동작이 포함될 수 있습니다.

UDT는 시스템 전체에서 액세스하므로 복잡한 데이터 형식을 사용하면 성능이 저하될 수 있습니다. 복잡한 데이터는 일반적인 행과 테이블을 사용하여 모델링하는 것이 효율적입니다. SQL Server UDT는 다음 항목에 적합합니다.

  • 날짜, 시간, 통화 및 확장된 숫자 형식

  • 지형 공간 애플리케이션

  • 인코딩 또는 암호화된 데이터

SQL Server UDT를 개발하는 프로세스는 다음 단계로 구성됩니다.

  1. UDT를 정의하는 어셈블리를 코딩 및 작성합니다. UDT는 검증할 수 있는 코드를 생성하는 .NET Framework CLR(공용 언어 런타임)에서 지원하는 모든 언어를 사용하여 정의합니다. 이러한 언어에는 Visual C# 및 Visual Basic .NET 등이 있습니다. 데이터는 .NET Framework 클래스 또는 구조의 필드와 속성으로 노출되며 동작은 클래스 또는 구조의 메서드로 정의됩니다.

  2. 어셈블리를 등록합니다. UDT는 데이터베이스 프로젝트의 Visual Studio 사용자 인터페이스를 통해 배포하거나 클래스 또는 구조를 포함하는 어셈블리를 데이터베이스에 복사하는 Transact-SQL CREATE ASSEMBLY 문을 사용하여 배포할 수 있습니다.

  3. SQL Server에서 UDT를 만듭니다. 어셈블리가 호스트 데이터베이스에 로드되면 Transact-SQL CREATE TYPE 문을 사용하여 UDT를 만들고 클래스 또는 구조체의 멤버를 UDT의 멤버로 노출합니다. UDT는 단일 데이터베이스의 컨텍스트에만 있으며, 등록된 후에는 UDT를 만들 때 사용된 외부 파일에 대한 종속 관계가 없습니다.

    참고

    SQL Server 2005(9.x) 이전에는 .NET Framework 어셈블리에서 만든 UDT가 지원되지 않았습니다. 그러나 sp_addtype 사용하여 SQL Server 별칭 데이터 형식을 계속 사용할 수 있습니다. CREATE TYPE 구문을 사용하여 네이티브 SQL Server 사용자 정의 데이터 형식과 UDT를 모두 만들 수 있습니다.

  4. UDT를 사용하여 테이블, 변수 또는 매개 변수 만들기 SQL Server 2005(9.x)부터 사용자 정의 형식을 테이블의 열 정의, Transact-SQL 일괄 처리의 변수 또는 Transact-SQL 함수 또는 저장 프로시저의 인수로 사용할 수 있습니다.

섹션 내용

User-Defined 형식 만들기
UDT를 만드는 방법에 대해 설명합니다.

SQL Server의 사용자 정의 형식 등록
SQL Server UDT를 등록하고 관리하는 방법을 설명합니다.

SQL Server의 사용자 정의 형식 작업
UDT를 사용하여 쿼리를 만드는 방법에 대해 설명합니다.

ADO.NET의 사용자 정의 형식 액세스
ADO.NET SQL Server .NET Framework Data Provider를 사용하여 UDT를 사용하는 방법을 설명합니다.