연습: SQLCLR 개체를 참조하는 데이터베이스 업데이트

SQL CRL(공용 언어 런타임) 어셈블리를 업데이트하거나 배포하지 않고 해당 어셈블리의 개체를 참조하는 데이터베이스에 대한 업데이트를 배포할 수 있습니다. 예를 들어 연습: SQL CLR 개체를 사용하는 데이터베이스 프로젝트 만들기 및 배포에서 설명하는 것과 같은 데이터베이스가 있을 수 있습니다.

이 연습에서는 다음 단계를 수행합니다.

  • 빈 데이터베이스 프로젝트 만들기

  • SQLCLR 어셈블리의 개체를 참조하는 데이터베이스에서 스키마 가져오기

  • 데이터베이스 프로젝트 수정

  • 수정된 데이터베이스 프로젝트 빌드 및 배포

사전 요구 사항

이 연습을 완료하려면 Visual Studio 2010 Premium이 설치되어 있어야 합니다. SQL Server 2005 또는 SQL Server 2008의 인스턴스에 대한 액세스 권한이 있어야 합니다. 데이터베이스 서버에 데이터베이스를 배포할 수 있는 권한이 있어야 합니다. 또한 연습: SQL CLR 개체를 사용하는 데이터베이스 프로젝트 만들기 및 배포를 완료해야 합니다. 해당 연습의 일부로 이 연습에서 가져올 SQLCLR 어셈블리 및 데이터베이스를 배포했어야 합니다.

빈 데이터베이스 프로젝트 만들기

데이터베이스 프로젝트를 만들려면

  1. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 클릭합니다.

    새 프로젝트 대화 상자가 나타납니다.

  2. 설치된 템플릿에서 데이터베이스 노드, SQL Server 노드를 차례로 확장하고 고급을 클릭합니다.

  3. 템플릿 목록에서 SQL Server 2008 데이터베이스 프로젝트를 클릭합니다.

  4. 이름에 ImportedSQLCLRSandbox를 입력합니다.

    중요

    위치솔루션 이름에서 기본값을 변경하지 마십시오.

  5. 솔루션용 디렉터리 만들기 확인란이 아직 선택되어 있지 않은 경우 선택합니다.

  6. 소스 제어에 추가 확인란이 아직 선택 취소되어 있지 않은 경우 선택 취소하고 확인을 클릭합니다.

    솔루션 탐색기에 빈 데이터베이스 프로젝트가 나타납니다.

    그런 다음 데이터베이스 스키마와 참조된 SQLCLR 어셈블리를 가져옵니다.

스키마 가져오기

데이터베이스 스키마를 가져오려면

  1. 솔루션 탐색기에서 ImportedSQLCLRSandbox 프로젝트 노드를 확장하고 참조 노드를 확장합니다.

    이 프로젝트에는 Microsoft.SqlTypes.dbschema에 대한 데이터베이스 참조가 하나 포함되어 있습니다.

  2. ImportedSQLCLRSandbox 프로젝트 노드를 마우스 오른쪽 단추로 클릭한 다음 데이터베이스 개체 및 설정 가져오기를 클릭합니다.

    데이터베이스 가져오기 마법사 대화 상자가 나타납니다.

  3. 소스 데이터베이스 연결에서 SQLClrDatabaseSandbox 데이터베이스에 해당하는 연결을 클릭합니다. 이 데이터베이스는 연습: SQL CLR 개체를 사용하는 데이터베이스 프로젝트 만들기 및 배포에서 만듭니다.

    이 연결이 목록에 표시되지 않으면 새 연결을 클릭하여 해당 데이터베이스에 대한 연결을 지정합니다.

  4. 다른 설정은 기본값을 그대로 적용하고 시작을 클릭합니다.

    데이터베이스 스키마와 참조된 SQLCLR 어셈블리를 데이터베이스 프로젝트로 가져오는 작업이 시작됩니다.

  5. 스키마 가져오기가 끝나면 마침을 클릭합니다.

  6. 에서 참조 폴더를 열고 SqlClassLibrary를 클릭합니다.

  7. 보기 메뉴에서 속성 창을 클릭합니다.

    어셈블리 이름 속성의 값은 SupportingSQLClrObjects이고, 어셈블리 소유자 속성의 값은 dbo입니다.

    다음에는 데이터베이스 프로젝트에 테이블을 추가합니다. 이 테이블에서는 SQLCLR 어셈블리에 정의된 사용자 정의 형식을 사용합니다.

데이터베이스 프로젝트 수정

데이터베이스 프로젝트에 테이블을 추가하려면

  1. 보기 메뉴에서 데이터베이스 스키마 뷰를 클릭합니다.

  2. ImportedSQLCLRSandbox 노드, 스키마 노드, dbo 노드 및 테이블 노드를 차례로 확장합니다.

  3. 테이블 노드를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 테이블을 클릭합니다.

    새 항목 추가 대화 상자가 열립니다.

  4. 이름에 SecondTable을 입력하고 추가를 클릭합니다.

    스키마 뷰에 새 테이블이 나타나고 Transact-SQL 편집기가 열리면서 해당 테이블에 대한 정의가 표시됩니다.

  5. Transact-SQL 편집기에서 다음과 일치하도록 테이블 정의를 수정합니다.

    CREATE TABLE [dbo].[SecondTable]
    (
        [ID] INT NOT NULL,
        [Name] NVARCHAR(30) NOT NULL,
        [Type] [dbo].[MyCustomType] NULL
    )
    
  6. 파일 메뉴에서 SecondTable.table.sql 저장을 클릭합니다.

    다음에는 프로젝트를 구성, 빌드 및 배포합니다.

데이터베이스 프로젝트 구성, 빌드 및 배포

빌드 설정을 구성하려면

  1. 솔루션 탐색기에서 ImportedSQLCLRSandbox를 클릭합니다.

  2. 프로젝트 메뉴에서 ImportedSQLCLRSandbox 속성을 클릭합니다.

  3. 빌드 탭을 클릭하고 기본 설정을 검토합니다.

    이 연습에서는 기본 설정을 사용할 수 있습니다.

    다음에는 배포 설정을 구성합니다.

배포 설정을 구성하려면

  1. 배포 탭을 클릭합니다.

  2. 배포 작업 목록에서 배포 스크립트(.sql)를 만들고 데이터베이스에 배포를 클릭합니다.

  3. 배포 설정 구성 목록에서 내 격리된 개발 환경을 클릭합니다.

    이 설정을 지정하면 격리된 개발 환경에만 영향을 주는 값이 구성됩니다. 데이터베이스 프로젝트의 설정은 변경하지 않습니다.

  4. 배포 스크립트 이름에서 기본값을 그대로 둡니다.

  5. 대상 데이터베이스 설정에서 편집을 클릭하여 대상 연결을 지정합니다.

  6. 연결 속성 대화 상자에서는 앞의 연습에서 데이터베이스 개체와 설정을 가져온 원본 서버 및 데이터베이스에 대한 연결을 지정하고 확인을 클릭합니다.

  7. 대상 데이터베이스 이름에서 기본값을 그대로 둡니다.

  8. 배포 구성 파일 목록에서 Properties\Database.deploymentconfig를 클릭합니다.

    기본적으로 격리된 개발 환경에는 세부적인 배포 설정이 연결되어 있지 않습니다. 이 파일을 지정하면 해당 데이터베이스 프로젝트와 연결된 배포 설정을 사용하게 됩니다. 또는 별도의 구성 파일을 만들어 격리된 개발 환경의 설정을 수정할 수도 있습니다.

  9. SQL 명령 변수 파일 목록에서 Properties\Database.deploymentconfig를 클릭합니다.

  10. 파일 메뉴에서 모두 저장을 클릭합니다.

    다음에는 데이터베이스 프로젝트를 빌드합니다.

데이터베이스 프로젝트를 빌드하고 배포하려면

  1. 빌드 메뉴에서 솔루션 빌드를 클릭합니다.

    데이터베이스 프로젝트가 올바르게 빌드됩니다.

  2. 빌드 메뉴에서 솔루션 배포를 클릭합니다.

    데이터베이스 프로젝트가 배포 설정에서 지정한 대상 서버 및 데이터베이스에 배포됩니다. 기존 SQLCLR 어셈블리를 참조하고 있으므로 해당 어셈블리는 데이터베이스 프로젝트와 함께 배포되지 않습니다.

    출력 창에 다음 메시지가 나타납니다.

------ Deploy started: Project: ImportedSQLCLRSandbox, Configuration: Debug Any CPU ------
    Deployment script generated to:
C:\DBProjs\ImportedSQLCLRSandbox\ImportedSQLCLRSandbox\sql\debug\ImportedSQLCLRSandbox.sql

    Creating dbo.SecondTable...
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Deploy: 1 succeeded, 0 failed, 0 skipped ==========

데이터베이스 프로젝트가 성공적으로 배포되었습니다.

프로젝트를 팀에서 사용할 수 있게 만들기(선택 사항)

프로젝트를 버전 제어에 추가하려면

  1. 솔루션 탐색기에서 ImportedSQLCLRSandbox 노드를 클릭합니다.

  2. 파일 메뉴에서 소스 제어를 가리킨 다음 소스 제어에 솔루션 추가를 클릭합니다.

    이 부분에서 사용자는 설치된 버전 제어 소프트웨어와 상호 작용합니다. 이 연습에서는 프로젝트를 Visual Studio Team Foundation Server에 추가하는 단계를 제공합니다. 다른 버전 제어 소프트웨어를 사용하려면 해당하는 단계로 바꿉니다. Team Foundation Server를 사용하는 경우에는 Team Foundation Server에 연결 대화 상자가 나타납니다.

  3. Team Foundation Server에 연결에서 솔루션을 추가할 팀 프로젝트를 호스팅하는 서버를 클릭합니다.

    참고

    데이터베이스 프로젝트를 추가할 수 있는 팀 프로젝트가 없는 경우 프로젝트 계획 및 추적를 참조하십시오.

  4. 팀 프로젝트에서 데이터베이스 프로젝트를 추가할 팀 프로젝트를 클릭하고 확인을 클릭합니다.

    소스 제어에 ImportedSQLCLRSandbox 솔루션 추가 대화 상자가 나타납니다.

  5. 확인을 클릭하여 기본값을 적용합니다.

    데이터베이스 프로젝트와 해당 파일이 버전 제어에서 관리됩니다. 처음에는 데이터베이스 프로젝트와 해당 파일이 체크 아웃되어 있으므로 다른 팀 멤버가 이 프로젝트와 파일을 액세스할 수 있으려면 체크 인해야 합니다.

  6. 보기 메뉴에서 다른 창을 가리킨 다음 보류 중인 변경 내용을 클릭합니다.

    보류 중인 변경 내용 창이 나타납니다.

  7. 설명에 '초기 데이터베이스 프로젝트 만들기 및 스키마 가져오기'를 입력합니다.

  8. 소스 제어 - Team Foundation 도구 모음에서 체크 인을 클릭합니다.

    데이터베이스 프로젝트와 이 프로젝트에 포함된 파일이 체크 인될 때 체크 인 진행률 대화 상자가 나타납니다. 솔루션 탐색기에서 아이콘이 변경되어 파일이 버전 제어에 체크 인되었다는 것을 나타냅니다.

다음 단계

이 시점에서 데이터베이스 단위 테스트를 만들거나 업데이트하여 데이터베이스의 새 동작 또는 변경된 동작을 확인할 수 있습니다. 데이터 생성 계획을 만들거나 업데이트하여 테스트 데이터를 제공할 수도 있습니다. 자세한 내용은 데이터베이스 프로젝트 구성 및 테스트 개발 수행을 참조하십시오.

참고 항목

작업

연습: SQL CLR 개체를 사용하는 데이터베이스 프로젝트 만들기 및 배포

개념

데이터베이스 팀 개발 시작

다른 데이터베이스를 참조하는 데이터베이스의 팀 개발 시작

SQLCLR 개체를 참조하는 데이터베이스의 팀 개발 시작

공유 서버 개체를 참조하는 데이터베이스의 팀 개발 시작

Visual Studio의 데이터베이스 기능에 필요한 권한