방법: 빌드 및 로컬 데이터베이스에 배포

SQL Server는 SQL Server 데이터베이스 프로젝트를 디버그할 때 활성화되는 SQL Server Express 로컬 데이터베이스 런타임(LocalDB)이라는 로컬 주문형 서버 인스턴스를 제공합니다. 이 로컬 서버 인스턴스는 프로젝트의 빌드, 테스트, 디버깅을 위한 샌드박스로 사용할 수 있습니다.

설치된 SQL Server 인스턴스와는 독립적이며 SSDT(SQL Server Data Tools) 외부에서 액세스할 수 없습니다. 이러한 방식은 프로덕션 데이터베이스에 대한 액세스가 제한되거나 액세스 권한이 없지만, 권한 있는 직원이 프로덕션에 배포하기 전에 로컬에서 프로젝트를 테스트하길 원하는 개발자에게 이상적입니다. 또한 SQL Azure용 데이터베이스 솔루션을 개발할 때 이 로컬 서버에서 제공하는 편리한 기능을 사용하여 로컬에서 데이터베이스 프로젝트를 개발하고 클라우드에 배포하기 전에 테스트할 수 있습니다.

제한 사항

SQL Server 개체 탐색기에서 로컬 데이터베이스 노드 아래의 데이터베이스는 해당 데이터베이스 프로젝트를 반영하며 연결된 서버 인스턴스에서 동일한 이름의 데이터베이스와 관련이 없습니다.

Warning

다음 절차에서는 연결된 데이터베이스 개발프로젝트 기반 오프라인 데이터베이스 개발 구역의 이전 절차에서 만들어진 엔터티를 사용합니다.

로컬 데이터베이스를 사용합니다.

  1. SQL Server 개체 탐색기SQL Server 노드에는 로컬이라는 새 노드가 나타납니다. 로컬 데이터베이스 인스턴스입니다.

  2. 로컬데이터베이스 노드를 확장합니다. TradeDev 프로젝트와 이름이 같은 데이터베이스의 모양을 확인합니다. 이 데이터베이스 아래의 노드를 확장합니다. Data Tools 작업 창에서 로컬 노드의 모든 데이터베이스에 대한 진행률에 확장/가져오기 작업 상태가 표시됩니다. 이전 절차에서 만든 테이블과 엔터티가 포함되지 않습니다.

  3. F5 키를 눌러 TradeDev 데이터베이스 프로젝트를 디버그합니다.

    기본적으로 SSDT에서는 데이터베이스 프로젝트를 디버깅하는 데 로컬 데이터베이스 서버를 사용합니다. 이 경우 SSDT는 먼저 프로젝트 빌드를 시도하고, 오류가 없으면 프로젝트(및 해당 엔터티)가 로컬 데이터베이스에 배포됩니다. 나중에 동일한 프로젝트를 디버깅하는 경우 SSDT에서는 마지막 디버깅 세션 이후 변경된 내용을 검색하고 변경 내용만 로컬 데이터베이스에 배포합니다.

  4. 로컬 데이터베이스 서버의 TradeDev아래에서 노드를 다시 확장합니다. 이번에는 테이블, 뷰, 함수가 로컬 데이터베이스 서버에 배포되었습니다.

  5. 마우스 오른쪽 단추로 TradeDev 노드를 클릭하고 새 쿼리를 선택합니다.

  6. 스크립트 창에서 다음 코드를 붙여넣고 쿼리 실행 단추를 클릭하여 쿼리를 실행합니다.

    SELECT * FROM dbo.GetProductsBySupplier(1);
    
  7. 메시지 창에 (0 row(s) affected)가 표시되고 결과 창에 행이 반환되지 않습니다. 이는 실제 데이터가 실제로 포함되어 있는 연결된 데이터베이스 대신 로컬 데이터베이스에 대해 쿼리했기 때문입니다.

    이 로컬 TradeDev 데이터베이스 아래의 Products 테이블을 마우스 오른쪽 단추로 클릭하고 데이터 보기를 선택하여 이를 확인할 수 있습니다. 테이블은 비어 있습니다.

로컬 데이터베이스에 실제 데이터 복제

  1. SQL Server 개체 탐색기에서 연결된 SQL Server 인스턴스를 확장하고 TradeDev 데이터베이스를 찾습니다.

    Suppliers 테이블을 마우스 오른쪽 단추로 클릭하고 데이터 보기를 선택합니다.

  2. 데이터 편집기 맨 위에 있는 스크립트 단추(오른쪽에서 두 번째 단추)를 선택합니다. 스크립트에서 INSERT 문을 복사합니다.

  3. 로컬 서버 인스턴스를 확장하고 TradeDev 노드를 마우스 오른쪽 단추로 클릭한 다음 새 쿼리를 선택합니다.

  4. 이 쿼리 창에 INSERT 문을 붙여 넣고 쿼리를 실행합니다.

  5. 위의 단계를 반복하여 연결된 TradeDev 데이터베이스의 Products 테이블과 Fruits 테이블에서 데이터를 로컬 TradeDev 데이터베이스에 복제합니다.

  6. 로컬 서버 인스턴스를 마우스 오른쪽 단추로 클릭하고 새로 고침을 선택합니다. 데이터 보기로 테이블을 검사하여 로컬 데이터베이스가 채워졌는지 확인합니다.

  7. 로컬 서버 인스턴스의 TradeDev 노드를 마우스 오른쪽 단추로 클릭하고 새 쿼리를 선택합니다.

  8. 스크립트 창에서 다음 코드를 붙여넣고 쿼리 실행 단추를 클릭하여 쿼리를 실행합니다.

    SELECT * FROM dbo.GetProductsBySupplier(1);
    
  9. Transact-SQL 편집기 창 아래의 결과 창에 Products 테이블의 ApplesPotato Chips 행이 반환됩니다.