AdventureWorks 주기 CLR 레이어
SQL Server 2005의 AdventureWorks 주기 CLR 레이어 예제는 기본 AdventureWorks 예제 데이터베이스를 기반으로 추가 기능 계층을 형성하는 몇 가지 유용한 유틸리티를 제공합니다. 첫 번째 유틸리티는 AdventureWorks 데이터베이스와 관련이 있는 여러 유형의 사람에 대한 연락처 레코드를 만듭니다. 연락처 정보는 XML을 사용하여 지정하며 C# 기반 저장 프로시저로 전달됩니다. 두 번째 유틸리티는 C#을 사용하여 Currency 사용자 정의 데이터 형식을 정의합니다. 이 사용자 정의 데이터 형식에서는 금액과 culture가 모두 캡슐화되므로 금액을 해당 culture의 통화 값으로 렌더링하는 올바른 방법을 결정하는 데 도움을 줍니다. 세 번째 유틸리티는 Currency 사용자 정의 데이터 형식의 항목을 반환하는 통화 변환 함수를 제공합니다. AdventureWorks 데이터베이스에 미국 달러(USD)를 지정된 culture에 연결된 통화로 변환하는 환산율이 있는 경우 변환 함수는 변환율 및 요청 culture와 일치하는 culture와 함께 Currency 사용자 정의 데이터 형식을 반환합니다. 그렇지 않으면 Currency 사용자 정의 데이터 형식은 eu-us culture인 미국 달러(USD) 단위의 원래 금액을 반환합니다. 이 유틸리티는 또한 Transact-SQL을 사용하여 CLR(공용 언어 런타임) 메서드 및 어셈블리를 등록 및 등록 해제하는 방법도 보여 줍니다.
[!참고] 이 예제에서 사용하는 환율은 실제 환율이 아니므로 실제 금융 거래에 사용할 수 없습니다.
기본 설치 디렉터리는 drive:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\AdventureWorks입니다.
시나리오
- 한 개발자에게는 다양한 통화량을 서로 다른 통화로 표현, 유지 및 조작할 수 있는 편리한 방법이 필요합니다.
- 한 개발자에게는 직원, 개인 고객, 대리점 고객 및 공급업체의 새로운 연락처 정보를 만들고 이 정보를 AdventureWorks 데이터베이스에 저장된 다른 정보와 관련시킬 수 있는 편리한 방법이 필요합니다.
언어
Transact-SQL, Visual C# 및 Visual Basic을 참조하십시오.
기능
SQLCLR 계층 예제는 다음의 SQL Server 2005 기능을 사용합니다.
응용 프로그램 영역 | 기능 |
---|---|
Contact |
XML |
Currency, ConvertCurrency |
CLR UDT, CLR 사용자 정의 함수(UDF) |
필수 구성 요소
이 예제를 실행하기 전에 다음 소프트웨어가 설치되어 있는지 확인하십시오.
- SQL Server 2005 또는 SQL Server 2005 Express Edition(SQL Server Express). SQL Server 2005 Express Edition 설명서 및 예제웹 사이트에서 무료로 SQL Server Express를 구할 수 있습니다.
- SQL Server 2005에 포함되어 있으며 SQL Server Developer 웹 사이트에서 사용할 수 있는 AdventureWorks 데이터베이스
- SQL Server 2005 데이터베이스 엔진 예제. 이 예제는 SQL Server 2005에 포함되어 있습니다. SQL Server Developer 웹 사이트에서 최신 버전의 예제를 다운로드할 수 있습니다.
- .NET Framework SDK 2.0 또는 Microsoft Visual Studio 2005. .NET Framework SDK는 무료로 구할 수 있습니다. .NET Framework SDK 설치를 참조하십시오.
예제 빌드
강력한 이름의 키 파일인 SampleKey.snk와 UnsafeSampleKey.snk를 아직 만들지 않은 경우 다음 방법으로 해당 키 파일을 생성합니다.
강력한 이름의 키 파일을 생성하려면
Microsoft Visual Studio 2005 명령 프롬프트를 엽니다. 시작을 클릭하고 모든 프로그램, Microsoft Visual Studio 2005, Visual Studio 도구를 차례로 가리킨 다음 Visual Studio 2005 명령 프롬프트를 클릭합니다.
-또는-
.NET Framework 명령 프롬프트를 엽니다. 시작을 클릭하고 모든 프로그램, Microsoft .NET Framework SDK 2.0을 가리킨 다음 SDK 명령 프롬프트를 클릭합니다.
명령 프롬프트에서 CD(디렉터리 변경) 명령을 사용하여 명령 프롬프트 창의 현재 폴더를 Samples 폴더로 변경합니다.
[!참고] 예제가 있는 폴더를 확인하려면 시작을 클릭하고 모든 프로그램, Microsoft SQL Server 2005, 설명서 및 자습서를 차례로 가리킨 다음 예제 디렉터리를 클릭합니다. 기본 설치 위치가 사용된 경우 예제는 <system_drive>:\Program Files\Microsoft SQL Server\90\Samples에 있습니다.
명령 프롬프트에 다음 명령을 입력하여 키 파일을 생성합니다.
sn -k SampleKey.snk
sn -k UnsafeSampleKey.snk
중요: 강력한 이름의 키 쌍에 대한 자세한 내용은 MSDN의 .NET Development Center에서 "보안 정보: .NET Framework의 강력한 이름 및 보안(Security Briefs: Strong Names and Security in the .NET Framework)"을 참조하십시오.
예제를 빌드하려면 다음을 수행하십시오.
예제 빌드
Visual Studio 2005와 제공된 Visual Studio 솔루션을 사용하거나 .NET Framework SDK 2.0에 포함되어 있는 MicrosoftMSBuild를 사용하여 예제를 컴파일합니다. 명령 프롬프트에서 다음과 비슷한 명령을 실행합니다.
msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\AdventureWorksCS.sln
AdventureWorks 데이터베이스가 설치되어 있는지 확인합니다.
SQL Server 데이터베이스 엔진 예제를 기본 위치에 설치하지 않은 경우 예제가 설치된 위치를 나타내도록 Scripts\InstallCS.sql에서 스크립트의 CREATE ASSEMBLY 부분에 포함된 경로를 수정합니다.
사용 중인 SQL Server 인스턴스의 관리자가 아닌 경우 설치를 완료하기 위해 관리자로부터 CreateAssembly 사용 권한을 부여 받아야 합니다.
SQL Server Management Studio에서 Visual C# 프로젝트를 컴파일했는지 또는 Visual Basic 프로젝트를 컴파일했는지에 따라 scripts\installCS.sql 또는 scripts\installVB.sql 파일을 엽니다. 파일에 포함된 스크립트를 실행하거나 명령 프롬프트에서 다음과 비슷한 명령을 실행합니다.
sqlcmd -E -I -i Scripts\InstallCS.sql
이 스크립트는 다음 작업을 수행합니다.
- 정의하려는 저장 프로시저가 있으면 제거합니다.
- 어셈블리 등록이 존재하면 삭제합니다.
- 어셈블리를 등록합니다.
- CLR 저장 프로시저를 등록합니다.
예제 실행
예제를 실행하려면 다음을 수행하십시오.
예제 실행
Management Studio에서 Scripts\test.sql 파일을 로드하고 실행합니다. 또는 명령 프롬프트에서 다음 명령을 실행합니다.
sqlcmd -E -I -i Scripts\test.sql
예제 제거
다음 프로시저를 사용하여 SQLCLR 계층 예제를 제거합니다.
예제 제거
Management Studio에서 Scripts\cleanup.sql을 로드하고 실행합니다. 또는 명령 프롬프트에서 다음 명령을 실행합니다.
sqlcmd -E -I -i Scripts\cleanup.sql
설명
이 예제가 제대로 작동되려면 SQL Server 2005 또는 SQL Server 2005 Express Edition의 CLR을 설정해야 합니다.
예제는 교육용으로만 제공되므로 프로덕션 환경에서 사용하기에 적합하지 않으며 프로덕션 환경에서 테스트되지 않았습니다. Microsoft에서는 이러한 예제에 대해 기술 지원을 제공하지 않습니다. 시스템 관리자의 허가 없이 프로덕션 SQL Server 데이터베이스 또는 보고서 서버에 예제 응용 프로그램 및 어셈블리를 연결하거나 사용해서는 안 됩니다.
참고 항목
작업
개념
도움말 및 정보
변경 내역
릴리스 | 내역 |
---|---|
2005년 12월 5일 |
|