사용자 정의 집계 만들기Create User-defined Aggregates

SQL ServerSQL Server 내에 CLR 어셈블리로 프로그래밍된 데이터베이스 개체를 만들 수 있습니다.You can create a database object inside SQL ServerSQL Server that is programmed in a CLR assembly. CLR에서 제공하는 풍부한 프로그래밍 모델을 활용할 수 있는 데이터베이스 개체에는 트리거, 저장 프로시저, 함수, 집계 함수 및 형식이 있습니다.Database objects that can leverage the rich programming model provided by the CLR include triggers, stored procedures, functions, aggregate functions, and types.

Transact-SQLTransact-SQL에서 제공되는 기본 제공 집계 함수와 마찬가지로 사용자 정의 집계 함수는 값 집합에 대한 계산을 수행한 후 단일 값을 반환합니다.Like the built-in aggregate functions provided in Transact-SQLTransact-SQL, user-defined aggregate functions perform a calculation on a set of values and return a single value.

SQL ServerSQL Server 에서는 다음과 같은 방식으로 사용자 정의 집계 함수를 만들 수 있습니다.Creating a user-defined aggregate function in SQL ServerSQL Server involves the following steps:

  • MicrosoftMicrosoft .NET Framework 지원 언어의 클래스로 사용자 정의 집계 함수를 정의합니다.Define the user-defined aggregate function as a class in a MicrosoftMicrosoft .NET Framework-supported language. CLR로 사용자 정의 집계를 프로그래밍하는 방법은 CLR 사용자 정의 집계를 참조하세요.For more information about how to program user-defined aggregates in the CLR, see CLR User-Defined Aggregates. 그런 다음 적절한 언어 컴파일러로 정의된 클래스를 컴파일하여 CLR 어셈블리를 빌드합니다.Compile this class to build a CLR assembly using the appropriate language compiler.

  • CREATE ASSEMBLY 문을 사용하여 SQL ServerSQL Server에 어셈블리를 등록합니다.Register the assembly in SQL ServerSQL Server using the CREATE ASSEMBLY statement. SQL ServerSQL Server의 어셈블리에 대한 자세한 내용은 어셈블리(데이터베이스 엔진)를 참조하세요.For more information about assemblies in SQL ServerSQL Server, see Assemblies (Database Engine).

  • CREATE AGGREGATE 문을 사용하여 등록된 어셈블리를 참조하는 사용자 정의 집계를 만듭니다.Create the user-defined aggregate that references the registered assembly using the CREATE AGGREGATE statement.

참고

MicrosoftMicrosoft Visual StudioVisual Studio 에서 SQL Server 프로젝트를 배포하면 해당 프로젝트에 대해 지정된 데이터베이스에 어셈블리가 등록됩니다.Deploying a SQL Server Project in MicrosoftMicrosoft Visual StudioVisual Studio registers an assembly in the database that was specified for the project. 또한 프로젝트를 배포하면 SqlUserDefinedAggregate 특성으로 주석이 지정된 모든 클래스 정의에 대해 데이터베이스에서 사용자 정의 집계를 만듭니다.Deploying the project also creates a user-defined aggregate in the database for all class definitions annotated with the SqlUserDefinedAggregate attribute. 자세한 내용은 Deploying CLR Database Objects을 참조하세요.For more information, see Deploying CLR Database Objects.

참고

SQL ServerSQL Server 의 CLR 코드 실행 기능은 기본적으로 해제되어 있습니다.The ability of SQL ServerSQL Server to execute CLR code is off by default. 관리 코드 모듈을 참조하는 데이터베이스 개체를 만들고 변경하고 삭제할 수 있지만 SQL ServerSQL Server sp_configure(Transact-SQL) 를 사용하여 clr enabled 옵션 을 설정하지 않는 한 이러한 참조는에서 실행되지 않습니다.You can create, alter and drop database objects that reference managed code modules, but these references will not execute in SQL ServerSQL Server unless the clr enabled Option is enabled using sp_configure (Transact-SQL).

어셈블리를 생성, 수정 또는 삭제하려면To create, modify, or drop an assembly

참고 항목See Also

CLR(공용 언어 런타임) 통합 프로그래밍 개요Common Language Runtime (CLR) Integration Programming Concepts