CLR 데이터베이스 개체 배포
적용 대상:SQL Server
배포는 완료된 애플리케이션 또는 모듈을 배포하여 다른 컴퓨터에 설치하고 실행하는 프로세스입니다. Visual Studio를 사용하여 CLR(공용 언어 런타임) 데이터베이스 개체를 개발하고 테스트 서버에 배포할 수 있습니다. 또는 관리되는 데이터베이스 개체를 Visual Studio 대신 .NET Framework 재배포 파일로 컴파일할 수도 있습니다. 컴파일된 후에는 VISUAL Studio 또는 Transact-SQL 문을 사용하여 CLR 데이터베이스 개체를 포함하는 어셈블리를 테스트 서버에 배포할 수 있습니다.
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 데이터베이스에 등록할 수 있습니다.
참고 항목
원격 개발, 디버깅 및 개발에 Visual Studio를 사용하려면 SQL Server 인스턴스에서 TCP/IP 네트워크 프로토콜을 사용하도록 설정해야 합니다. 서버에서 TCP/IP 프로토콜을 사용하도록 설정하는 방법에 대한 자세한 내용은 클라이언트 프로토콜 구성을 참조하세요.
Visual Studio를 사용하여 어셈블리 배포
빌드 메뉴에서 빌드 <프로젝트 이름> 선택하여 프로젝트를 빌드합니다.
어셈블리를 테스트 서버에 배포하기 전에 모든 빌드 오류 및 경고를 해결합니다.
빌드 메뉴에서 배포를 선택합니다. 그런 다음, 어셈블리는 SQL Server 프로젝트를 Visual Studio에서 처음 만들 때 지정된 SQL Server 인스턴스 및 데이터베이스에 등록됩니다.
Transact-SQL 사용하여 어셈블리 배포
.NET Framework에 포함된 명령줄 컴파일러를 사용하여 소스 파일에서 어셈블리를 컴파일합니다.
C# 원본 파일의 경우:
csc /target:library C:\helloworld.cs
Visual Basic 원본 파일의 경우:
vbc /target:library C:\helloworld.vb
이러한 명령은 /target
옵션을 사용하여 C# 또는 Visual Basic 컴파일러를 시작하여 라이브러리 DLL 빌드를 지정합니다.
어셈블리를 테스트 서버에 배포하기 전에 모든 빌드 오류 및 경고를 해결합니다.
테스트 서버에서 SQL Server Management Studio를 엽니다. 적절한 테스트 데이터베이스(예:
AdventureWorks2022
)에 연결된 새 쿼리를 만듭니다.쿼리에 다음 Transact-SQL을 추가하여 서버에서 어셈블리를 만듭니다.
CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE;
그런 다음 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 데이터베이스 개체가 테스트 서버에서 테스트되고 확인되면 프로덕션 서버에 배포할 수 있습니다. 관리되는 데이터베이스 개체 디버깅에 대한 자세한 내용은
관리되는 데이터베이스 개체의 배포는 일반 데이터베이스 개체(테이블, Transact-SQL 루틴 등)의 배포와 비슷합니다. 즉, CLR 데이터베이스 개체가 포함된 어셈블리를 배포 스크립트를 사용하여 다른 서버에 배포할 수 있습니다. Management Studio의 스크립트 생성 기능을 사용하여 배포 스크립트를 빌드할 수 있습니다. 배포 스크립트를 수동으로 빌드하거나 스크립트 생성
스크립트 생성을 사용하여 배포 스크립트 생성
Management Studio를 열고 배포할 관리되는 어셈블리 또는 데이터베이스 개체가 등록된 SQL Server 인스턴스에 연결합니다.
개체 탐색기 서버 이름< 및 >합니다. 관리되는 데이터베이스 개체가 등록된 데이터베이스를 마우스 오른쪽 단추로 클릭하고 작업을 선택한 다음 스크립트 생성을 선택합니다. 스크립트 마법사가 열립니다.
목록 상자에서 데이터베이스를 선택하고 다음
선택합니다. 스크립트 옵션 선택 창에서 다음선택하거나 옵션을 변경한 다음 다음 선택합니다.개체 유형 선택 창에서 배포할 데이터베이스 개체의 유형을 선택합니다. 다음을 선택합니다.
개체 유형 선택 창에서 선택한 모든 개체 유형에 > 선택 창이 표시됩니다. 이 창에서는 지정된 데이터베이스에 등록된 해당 데이터베이스 개체 유형의 모든 인스턴스 중에서 선택할 수 있습니다. 하나 이상의 개체를 선택하고 다음
선택합니다. 출력 옵션 창은 원하는 모든 데이터베이스 개체 형식을 선택하면 표시됩니다. 파일로 사용할 스크립트를 선택하고 스크립트의 파일 경로를 지정합니다. 다음을 선택합니다. 선택 항목을 검토하고 마침
선택합니다. 배포 스크립트가 저장된 파일 경로에 저장됩니다.
배포 후 스크립트
배포 후 스크립트를 실행할 수 있습니다.
배포 후 스크립트를 추가하려면 Visual Studio 프로젝트 디렉터리에 postdeployscript.sql이라는 파일을 추가합니다. 예를 들어 솔루션 탐색기 프로젝트를 마우스 오른쪽 단추로 클릭하고 기존 항목 추가를 선택합니다. 테스트 스크립트 폴더가 아닌 프로젝트의 루트에 파일을 추가합니다.
배포를 선택하면 Visual Studio에서 프로젝트를 배포한 후 이 스크립트를 실행합니다.