다음을 통해 공유


CLR 데이터베이스 개체 배포

적용 대상: SQL Server

배포는 완료된 애플리케이션 또는 모듈을 배포하여 다른 컴퓨터에 설치하고 실행하는 프로세스입니다. Microsoft Visual Studio를 사용하여 CLR(공용 언어 런타임) 데이터베이스 개체를 개발하고 테스트 서버에 배포할 수 있습니다. 또는 관리되는 데이터베이스 개체를 Visual Studio 대신 Microsoft .NET Framework 재배포 파일로 컴파일할 수도 있습니다. 컴파일된 후에는 VISUAL Studio 또는 Transact-SQL 문을 사용하여 CLR 데이터베이스 개체를 포함하는 어셈블리를 테스트 서버에 배포할 수 있습니다. Visual Studio .NET 2003은 CLR 통합 프로그래밍이나 배포에 사용할 수 없습니다. SQL Server에는 .NET Framework가 미리 설치되어 있으며 Visual Studio .NET 2003에서는 .NET Framework 2.0 어셈블리를 사용할 수 없습니다.

테스트 서버에서 CLR 메서드를 테스트하고 확인하고 나면 개발 스크립트를 사용하여 프로덕션 서버에 배포할 수 있습니다. 배포 스크립트는 수동으로 또는 SQL Server Management Studio를 사용하여 생성할 수 있습니다(이 항목의 뒷부분에서 절차 참조).

CLR 통합 기능은 SQL Server에서 기본적으로 꺼져 있으며 CLR 어셈블리를 사용하려면 사용하도록 설정해야 합니다. 자세한 내용은 CLR 통합 사용을 참조하십시오.

테스트 서버에 어셈블리 배포

Visual Studio를 사용하여 CLR 함수, 프로시저, 트리거, UDT(사용자 정의 형식) 또는 UDA(사용자 정의 집계)를 개발하고 테스트 서버에 배포할 수 있습니다. 또한 .NET Framework 재배포 파일에 포함된 csc.exe 및 vbc.exe와 같은 명령줄 컴파일러를 사용하여 이러한 관리되는 데이터베이스 개체를 컴파일할 수도 있습니다. VISUAL Studio 통합 개발 환경은 SQL Server용 관리되는 데이터베이스 개체를 개발할 필요가 없습니다.

모든 컴파일러 오류 및 경고가 해결되었는지 확인합니다. 그런 다음, VISUAL Studio 또는 Transact-SQL 문을 사용하여 CLR 루틴을 포함하는 어셈블리를 SQL Server 데이터베이스에 등록할 수 있습니다.

참고 항목

원격 개발, 디버깅 및 개발에 Microsoft Visual Studio를 사용하려면 SQL Server 인스턴스에서 TCP/IP 네트워크 프로토콜을 사용하도록 설정해야 합니다. 서버에서 TCP/IP 프로토콜을 사용하도록 설정하는 방법에 대한 자세한 내용은 클라이언트 프로토콜 구성을 참조하세요.

Visual Studio를 사용하여 어셈블리를 배포하려면

  1. 빌드 메뉴에서 프로젝트 빌드<이름을> 선택하여 프로젝트를 빌드합니다.

  2. 어셈블리를 테스트 서버에 배포하기 전에 모든 빌드 오류 및 경고를 해결합니다.

  3. 빌드 메뉴에서 배포선택합니다. 그러면 VISUAL Studio에서 SQL Server 프로젝트를 처음 만들 때 지정된 SQL Server 인스턴스 및 데이터베이스에 어셈블리가 등록됩니다.

Transact-SQL을 사용하여 어셈블리를 배포하려면

  1. .NET Framework에 포함된 명령줄 컴파일러를 사용하여 소스 파일에서 어셈블리를 컴파일합니다.

  2. Microsoft Visual C# 원본 파일의 경우:

  3. csc /target:library C:\helloworld.cs

  4. Microsoft Visual Basic 원본 파일의 경우:

vbc /target:library C:\helloworld.vb

이러한 명령은 /target 옵션을 사용하여 Visual C# 또는 Visual Basic 컴파일러를 시작하여 라이브러리 DLL 빌드를 지정합니다.

  1. 어셈블리를 테스트 서버에 배포하기 전에 모든 빌드 오류 및 경고를 해결합니다.

  2. 테스트 서버에서 SQL Server Management Studio를 엽니다. 적절한 테스트 데이터베이스(예: AdventureWorks)에 연결된 새 쿼리를 만듭니다.

  3. 쿼리에 다음 Transact-SQL을 추가하여 서버에서 어셈블리를 만듭니다.

CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE;

  1. 그런 다음 SQL Server 인스턴스에서 프로시저, 함수, 집계, 사용자 정의 형식 또는 트리거를 만들어야 합니다. HelloWorld 어셈블리에 Procedures 클래스에 HelloWorld라는 메서드가 포함된 경우 다음 Transact-SQL을 쿼리에 추가하여 SQL Server에서 hello라는 프로시저를 만들 수 있습니다.

CREATE PROCEDURE hello

AS

EXTERNAL NAME HelloWorld.Procedures.HelloWorld

SQL Server에서 다양한 유형의 관리되는 데이터베이스 개체를 만드는 방법에 대한 자세한 내용은 CLR 사용자 정의 함수, CLR 사용자 정의 집계, CLR 사용자 정의 형식, CLR 저장 프로시저 및 CLR 트리거를 참조하세요.

프로덕션 서버에 어셈블리 배포

CLR 데이터베이스 개체가 테스트 서버에서 테스트 및 확인되면 프로덕션 서버에 배포할 수 있습니다. 관리되는 데이터베이스 개체 디버깅에 대한 자세한 내용은 CLR 데이터베이스 개체 디버깅을 참조 하세요.

관리되는 데이터베이스 개체의 배포는 일반 데이터베이스 개체(테이블, Transact-SQL 루틴 등)의 배포와 비슷합니다. 즉, CLR 데이터베이스 개체가 포함된 어셈블리를 배포 스크립트를 사용하여 다른 서버에 배포할 수 있습니다. Management Studio의 "스크립트 생성" 기능을 사용하여 배포 스크립트를 빌드할 수 있습니다. 배포 스크립트는 수동으로 빌드하거나 "스크립트 생성"을 사용하여 빌드하고 수동으로 변경할 수도 있습니다. 배포 스크립트가 빌드되면 SQL Server의 다른 인스턴스에서 실행하여 관리되는 데이터베이스 개체를 배포할 수 있습니다.

스크립트 생성을 사용하여 배포 스크립트를 생성하려면

  1. Management Studio를 열고 배포할 관리되는 어셈블리 또는 데이터베이스 개체가 등록된 SQL Server 인스턴스에 연결합니다.

  2. 개체 탐색기 서버 이름> 및 데이터베이스 트리를 확장<합니다. 관리되는 데이터베이스 개체가 등록된 데이터베이스를 마우스 오른쪽 단추로 클릭하고 작업을 선택한 다음 스크립트 생성을 선택합니다. 스크립트 마법사가 열립니다.

  3. 목록 상자에서 데이터베이스를 선택하고 다음을 클릭합니다.

  4. 스크립트 옵션 선택 창에서 다음을 클릭하거나 옵션을 변경한 다음 다음을 클릭합니다.

  5. 개체 유형 선택 창에서 배포할 데이터베이스 개체의 유형을 선택합니다. 다음을 클릭합니다.

  6. 개체 유형 선택 창에서 선택한 모든 개체 유형대해 형식> 선택 <창이 표시됩니다. 이 창에서는 지정된 데이터베이스에 등록된 해당 데이터베이스 개체 유형의 모든 인스턴스 중에서 선택할 수 있습니다. 하나 이상의 개체를 선택하고 다음을 클릭합니다.

  7. 원하는 데이터베이스 개체 형식을 모두 선택하면 출력 옵션 창이 표시됩니다. 파일로 사용할 스크립트를 선택하고 스크립트의 파일 경로를 지정합니다. 다음을 선택합니다. 선택 항목을 검토하고 마침을 클릭합니다. 배포 스크립트가 저장된 파일 경로에 저장됩니다.

배포 후 스크립트

배포 후 스크립트를 실행할 수 있습니다.

배포 후 스크립트를 추가하려면 Visual Studio 프로젝트 디렉터리에 postdeployscript.sql이라는 파일을 추가합니다. 예를 들어 솔루션 탐색기 프로젝트를 마우스 오른쪽 단추로 클릭하고 기존 항목 추가를 선택합니다. 테스트 스크립트 폴더가 아닌 프로젝트의 루트에 파일을 추가합니다.

배포를 클릭하면 Visual Studio에서 프로젝트 배포 후에 이 스크립트를 실행합니다.

참고 항목

CLR(공용 언어 런타임) 통합 프로그래밍 개요