다음을 통해 공유


SQL Server Management Studio에서 데이터베이스 DevOps(프리뷰)

SQL 데이터베이스 프로젝트는 테이블, 저장 프로시저 또는 함수와 같은 단일 데이터베이스의 스키마를 구성하는 SQL 개체의 로컬 표현입니다. SQL Database 프로젝트의 개발 주기를 통해 개발 모범 사례로 익숙한 CI/CD(연속 통합 및 지속적인 배포) 워크플로에 데이터베이스 개발을 통합할 수 있습니다. SSMS에서 미리 보기의 프로젝트를 사용하여 Microsoft.Build.Sql 데이터베이스 개체의 로컬 정의를 제공하여 데이터베이스 변경 내용을 구현, 관리 및 공동 작업할 수 있습니다.

이 문서에서는 SSMS(SQL Server Management Studio)에서 SQL Database 프로젝트를 데이터베이스 DevOps 워크플로의 일부로 사용하거나 고정하는 방법을 설명합니다. SQL 데이터베이스 프로젝트에 대한 자세한 내용은 SQL Database 프로젝트를 참조하세요.

사전 요구 사항

새 프로젝트 만들기

SSMS에서 SQL 데이터베이스 프로젝트를 사용하려면 프로젝트 파일이 포함된 로컬 폴더가 필요합니다. 기존 데이터베이스에서 개체를 추출하거나 새 개체 파일을 처음부터 만들어 프로젝트를 시작할 수 있습니다.

SQL Server Management Studio의 새 프로젝트 대화 상자 스크린샷

메모

SSMS는 솔루션 탐색기에서 파일을 열 때 서버에 연결하라는 메시지를 표시할 수 있습니다. 데이터베이스에 연결하지 않고 오프라인으로 SQL Database 프로젝트 개발을 수행할 수 있습니다.

기존 데이터베이스에서 개체 추가

SqlPackage를 사용하여 기존 데이터베이스에서 개체 유형별로 구성된 개별 .sql 파일로 스키마를 추출합니다. 다음 명령을 실행하여 데이터베이스 개체를 사용하여 폴더 구조를 만듭니다.

sqlpackage /Action:Extract /SourceConnectionString:"<connection-string>" /TargetFile:"<temp-folder>" /p:ExtractTarget=SchemaObjectType

매개 변수는 /p:ExtractTarget=SchemaObjectType 추출된 파일을 스키마 및 개체 형식(예 dbo/Tables: 예 dbo/StoredProcedures: )에 따라 하위 폴더로 구성합니다. 프로젝트 디렉터리 외부의 임시 폴더로 추출한 다음 Windows 탐색기를 사용하여 원하는 내용을 프로젝트 폴더에 복사합니다.

SqlPackage 추출 옵션에 대한 자세한 내용은 SqlPackage 추출을 참조하세요.

새 개체 만들기

프로젝트 폴더에 파일을 만들어 .sql 프로젝트에 새 데이터베이스 개체를 추가합니다. 각 파일에는 하나의 데이터베이스 개체에 대한 단일 CREATE 문이 포함되어야 합니다. 예를 들어 테이블 정의는 다음과 같습니다.

CREATE TABLE [dbo].[Products]
(
    [ProductId] INT NOT NULL PRIMARY KEY,
    [ProductName] NVARCHAR (100) NOT NULL,
    [Price] DECIMAL (10, 2) NOT NULL
);

스키마 및 개체 형식별로 파일을 dbo/Tables 또는 Sales/StoredProcedures와 같은 하위 폴더를 사용하여 구성합니다. 이 구조는 SqlPackage 추출의 출력과 일치하며 프로젝트가 증가함에 따라 개체를 더 쉽게 찾을 수 있습니다. SQL 프로젝트 빌드 프로세스에는 기본적으로 프로젝트 폴더의 모든 .sql 파일과 해당 하위 폴더가 포함됩니다.

SSMS는 시작하는 데 도움이 되는 일반적인 항목에 대한 템플릿을 제공합니다. 새 항목을 추가하려면 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고새 항목>를 선택한 다음 SQL 개체 템플릿 목록에서 선택합니다.

기존 프로젝트 열기

SSMS에서 기존 SQL 데이터베이스 프로젝트를 열려면 파일>열기>프로젝트/솔루션을 선택하고 파일로 이동합니다 .sqlproj .

중요합니다

SSMS는 SDK 스타일 Microsoft.Build.Sql 프로젝트만 지원합니다. 지원되는 최소 SDK 버전은 2.1.0입니다. Visual Studio에서 만든 원래 SQL 프로젝트가 있는 경우 열기 전에 SDK 스타일 형식으로 변환해야 합니다.

원래 SQL 프로젝트를 SDK 스타일 형식으로 변환하는 방법에 대한 지침은 원래 SQL 프로젝트를 SDK 스타일 프로젝트로 변환을 참조하세요.

프로젝트 빌드 및 변경 내용 배포

SQL 프로젝트 워크플로는 스키마의 유효성을 검사하고 컴파일하기 위해 프로젝트를 빌드하고 컴파일된 출력을 대상 데이터베이스에 배포하는 두 가지 주요 단계로 구성됩니다.

프로젝트 빌드

SQL 프로젝트를 빌드하면 개체 간의 관계의 유효성을 검사하고 지정된 대상 플랫폼에 대해 T-SQL 구문을 확인합니다. 빌드 프로세스는 데이터베이스 스키마의 컴파일된 모델을 포함하는 파일을 생성 .dacpac 합니다.

SSMS에서 프로젝트를 빌드하려면 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 빌드를 선택합니다.

SQL 프로젝트 빌드 옵션을 보여 주는 솔루션 탐색기의 스크린샷

빌드 출력에 오류 또는 경고가 표시됩니다. 오류는 존재하지 않는 테이블을 참조하는 뷰와 같이 배포를 방지하는 문제를 나타냅니다. 경고는 개체 이름의 대/소문자를 일치하지 않는 것과 같은 잠재적인 문제를 강조 표시합니다.

빌드에 성공하면 .dacpac 파일이 프로젝트 디렉터리 내의 bin\Debug 폴더에 만들어집니다.

빌드 문제 해결에 대한 자세한 내용은 SQL 프로젝트 빌드 오류 문제를 참조하세요.

변경 내용 배포

프로젝트를 빌드한 후 SSMS의 .dacpac 게시 대화 상자를 사용하여 대상 데이터베이스에 배포합니다. 배포 프로세스는 .dacpac을(를) 대상 데이터베이스와 비교하고, 데이터베이스를 프로젝트와 동기화하는 데 필요한 CREATE, ALTER, 또는 DROP 문을 생성합니다.

배포하려면 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 게시를 선택합니다. 게시 대화 상자에서 대상 데이터베이스 연결을 구성하고 게시를 선택하여 변경 내용을 적용하거나 스크립트 생성 을 선택하여 실행 전에 배포 스크립트를 검토합니다.

SQL Database 프로젝트 변경 내용을 배포하기 위한 게시 대화 상자의 스크린샷

게시 프로세스는 idempotent이므로 문제를 일으키지 않고 동일한 .dacpac 여러 번 배포할 수 있습니다. 이 방법을 사용하면 동일한 컴파일된 아티팩트에서 여러 환경(개발, 스테이징, 프로덕션)에 배포할 수 있습니다.

배포 옵션 및 구성에 대한 자세한 내용은 SQL 데이터베이스 프로젝트 시작을 참조하세요.