다음을 통해 공유


AdventureWorks에 있는 사용자 정의 함수

AdventureWorks 예제 OLTP 데이터베이스에는 다양한 Transact-SQL 사용자 정의 함수가 포함되어 있습니다. CLR(공용 언어 런타임) 사용자 정의 함수의 예는 CLR 프로그래밍 기능 예제에서 사용할 수 있습니다.

CLR 사용자 정의 함수

다음 표에서는 사용할 수 있는 CLR 사용자 정의 함수의 예제를 설명합니다. CLR 사용자 정의 함수에 대한 자세한 내용은 CLR User-Defined Functions를 참조하십시오.

예제 설명

보충 문자 인식 문자열 조작

기본 제공 함수와 동일한 문자열 수정 기능을 제공할 뿐만 아니라 추가 보완 문자 인식 기능을 통해 유니코드 및 보완 문자의 문자열을 모두 처리할 수 있는 Transact-SQL 문자열 함수의 5가지 구현 예를 보여 줍니다. 이 5가지 함수는 len_s(), left_s(), right_s(), sub_s() 및 replace_s()이며 각각 기본 제공 문자열 함수 LEN(), LEFT(), RIGHT(), SUBSTRING() 및 REPLACE()에 해당합니다.

In-Process 데이터 액세스 예제

SQLCLR In-process 데이터 액세스 공급자의 다양한 기능을 보여 주는 몇 가지 간단한 함수가 포함되어 있습니다.

문자열 유틸리티 예제

C# 및 Microsoft Visual Basic으로 작성되었으며 쉼표로 구분된 문자열을 열이 하나인 테이블로 분리하는 스트리밍 테이블 값 함수가 포함되어 있습니다. 또한 문자열 열을 쉼표로 구분된 문자열로 변환하는 집계 함수도 포함되어 있습니다.

AdventureWorks 주기 CLR 레이어

Currency 사용자 정의 유형의 인스턴스를 반환하는 통화 변환 함수가 포함되어 있습니다.

UDT 유틸리티

어셈블리 메타데이터를 Transact-SQL로 반환하는 함수가 포함되어 있습니다. 여기에는 어셈블리의 형식을 테이블로 반환하는 예제 스트리밍 테이블 값 함수와 사용자 정의 유형의 필드, 메서드 및 속성을 반환하는 함수가 포함됩니다. 스트리밍 테이블 값 함수, Microsoft .NET Framework 리플렉션 API 및 Transact-SQL의 테이블 값 함수 호출 등의 기술을 보여 줍니다.

Transact-SQL 사용자 정의 함수

다음 표에서는 AdventureWorks 예제 OLTP 데이터베이스에 포함되어 있는 Transact-SQL 사용자 정의 함수를 설명합니다. Transact-SQL 사용자 정의 함수에 대한 자세한 내용은 사용자 정의 함수 이해를 참조하십시오.

사용자 정의 함수 설명 입력 매개 변수 반환 값

ufnLeadingZeros

지정된 정수 값에 선행 0을 추가하는 스칼라 함수이며 varchar(8) 데이터 형식을 반환합니다.

@valueint

@ReturnValuevarchar(8)

ufnGetContactInformation

테이블 값 함수의 복잡한 쿼리를 캡슐화하여 데이터에 쉽게 액세스할 수 있게 만듭니다.

@contactidint

ContactIDint, FirstNamenvarchar(50), LastNamenvarchar(50), JobTitle nvarchar(50), ContactType nvarchar(50)

ufnGetProductDealerPrice

지정된 날짜의 제품 가격을 기준으로 특정 제품의 딜러 가격을 계산하는 스칼라 함수입니다.

@productIDint, @orderdate

datetime

@DealerPricemoney

1. dbo.ufnLeadingZeros 사용

다음 예에서는 ufnLeadingZeros 함수를 사용하여 Customer 테이블의 기존 CustomerID 열에서 고객 계정 번호를 만듭니다.

USE AdventureWorks;
GO
SELECT CustomerID,('AW' + dbo.ufnLeadingZeros(CustomerID)) 
    AS GenerateAccountNumber
FROM Sales.Customer
ORDER BY CustomerID;
GO

2. dbo.ufnGetContactInformation 사용

AdventureWorks 데이터베이스의 Contact 테이블에는 직원, 고객(대리점 담당자 또는 개별 소비자) 및 공급업체 담당자의 이름이 포함되어 있습니다. 테이블 값 함수 ufnGetContactInformation은 지정된 ContactID에 대한 행 하나를 반환합니다.

USE AdventureWorks;
GO
SELECT ContactID, FirstName, LastName, JobTitle, ContactType
FROM dbo.ufnGetContactInformation(2200);
GO
SELECT ContactID, FirstName, LastName, JobTitle, ContactType
FROM dbo.ufnGetContactInformation(5);
GO

3. dbo.ufnGetProductDealerPrice 사용

다음 예에서는 ufnGetProductDealerPrice 함수를 사용하여 ProductListPriceHistory 테이블의 모든 제품에 대한 할인된 딜러 가격을 반환합니다.

USE AdventureWorks;
GO
SELECT ProductID, ListPrice, dbo.ufnGetProductDealerPrice(ProductID, StartDate) AS DealerPrice,
    StartDate, EndDate
FROM Production.ProductListPriceHistory
WHERE ListPrice > .0000
ORDER BY ProductID, StartDate;

참고 항목

관련 자료

AdventureWorks에 있는 SQL Server 개체
CREATE FUNCTION(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기