자습서: 기존 데이터베이스에서 시작
적용 대상: Microsoft Fabric의 SQL ServerAzure SQL Database Azure SQL Managed Instance SQL 데이터베이스
SQL 프로젝트에는 테이블, 뷰 및 저장 프로시저와 같은 데이터베이스의 모든 개체에 대한 선언적(CREATE 문) 파일이 포함되어 있습니다. 이러한 파일을 사용하여 새 데이터베이스를 만들거나, 기존 데이터베이스를 업데이트하거나, 원본 제어에서 데이터베이스를 추적할 수도 있습니다. 기존 데이터베이스가 있고 최소한의 노력으로 데이터베이스와 일치하는 개체를 SQL 프로젝트에 만들려고 할 때 종종 SQL 프로젝트로 시작합니다.
일부 SQL 프로젝트 도구에는 기존 데이터베이스에서 새 SQL 프로젝트를 만들기 위한 단일 단계가 포함되어 있습니다. 다른 도구에는 새 SQL 프로젝트를 만든 다음 기존 데이터베이스에서 개체를 가져오는 몇 가지 단계가 필요합니다. 이 가이드에서는 Visual Studio(SQL Server Data Tools) 지침을 제외하고 SDK 스타일 SQL 프로젝트에 중점을 둡니다.
이 자습서의 옵션 1에서는 다음을 수행합니다.
1단계: 기존 데이터베이스 에서 새 SQL 프로젝트 만들기 2단계: SQL 프로젝트 빌드
이 자습서의 옵션 2에서는 다음을 수행합니다.
- 1단계: 새 빈 SQL 프로젝트 만들기
- 2단계: 기존 데이터베이스에서 개체 가져오기
- 3단계: SQL 프로젝트 빌드
필수 조건
- .NET 8.0 SDK
- Visual Studio 2022 Community, Professional 또는 Enterprise.
- Visual Studio 2022에 설치된 SQL Server Data Tools, SDK 스타일(미리 보기)
- SqlPackage CLI
# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage
# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage
# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates
참고 항목
자습서를 완료하려면 Azure SQL 또는 SQL Server 인스턴스에 액세스해야 합니다. Windows 또는 컨테이너에서 SQL Server 개발자 버전을 사용하여 로컬에서 무료로 개발할 수 있습니다.
옵션 1: 기존 데이터베이스에서 새 SQL 프로젝트 만들기
1단계: 기존 데이터베이스에서 새 SQL 프로젝트 만들기
Visual Studio의 SQL Server 개체 탐색기에서 프로젝트를 만들 데이터베이스를 마우스 오른쪽 단추로 클릭하고 새 프로젝트 만들기...를 선택합니다.
새 프로젝트 만들기 대화 상자에서 데이터베이스 이름과 일치시킬 필요가 없는 프로젝트 이름을 제공합니다. 필요에 따라 프로젝트 위치를 확인하고 수정합니다. 기본 가져오기 설정은 스키마를 사용하여 개체를 폴더로 가져온 다음 개체 형식을 가져옵니다. 가져오기 설정을 수정하여 폴더 구조를 변경하거나 가져오는 개체에 사용 권한을 포함할 수 있습니다. 가져오기 시작
가져오기가 진행되는 동안 진행률이 데이터베이스 가져오기 대화 상자에 문자로 표시됩니다. 가져오기가 완료되면 가져온 개체가 솔루션 탐색기에 표시되고 로그는 Import Schema Logs
아래 프로젝트 디렉터리의 파일에 저장됩니다. 마침을 선택합니다.
명령줄에는 옵션 1을 사용할 수 없습니다. 대신 옵션 2를 사용합니다.
VS Code 또는 Azure Data Studio의 데이터베이스 개체 탐색기 보기에서 프로젝트를 만들 데이터베이스를 선택합니다. 데이터베이스를 마우스 오른쪽 단추로 클릭한 다음 데이터베이스에 프로젝트 생성을 선택합니다.
Azure Data Studio에서 데이터베이스 에서 프로젝트 만들기 대화 상자를 사용하려면 프로젝트 이름과 위치를 선택해야 합니다. 기본 가져오기 설정은 스키마를 사용하여 개체를 폴더로 가져온 다음 개체 형식을 가져옵니다. 만들기를 선택하기 전에 가져올 개체에 사용 권한을 포함하거나 다른 폴더 구조를 선택할 수 있습니다.
VS Code에서 명령 프롬프트는 프로젝트 이름과 위치를 요청합니다. 기본 가져오기 설정은 스키마를 사용하여 개체를 폴더로 가져온 다음 개체 형식을 가져옵니다. 가져오기를 시작하기 전에 다른 폴더 구조를 선택하거나 가져오는 개체에 사용 권한을 포함할 수 있습니다.
데이터베이스 프로젝트 보기를 열어 새 프로젝트 및 가져온 개체 정의를 확인합니다.
명령줄에는 옵션 1을 사용할 수 없습니다. 대신 옵션 2를 사용합니다.
2단계: SQL 프로젝트 빌드
빌드 프로세스는 프로젝트 파일에 지정된 대상 플랫폼에 대한 개체와 구문 간의 관계의 유효성을 검사합니다. 빌드 프로세스의 아티팩트 출력은 대상 데이터베이스에 프로젝트를 배포하는 데 사용할 수 있는 .dacpac
파일이며 데이터베이스 스키마의 컴파일된 모델을 포함합니다.
솔루션 탐색기에서, 프로젝트 노드를 마우스 우클릭한 후 빌드를 선택합니다.
출력 창이 자동으로 열리면 빌드 프로세스가 표시됩니다. 오류 또는 경고가 발생한 경우, 출력 창에 표시됩니다. 빌드가 성공하면 빌드 아티팩트(.dacpac
파일)가 만들어지고 해당 위치가 빌드 출력에 포함됩니다(기본값은 bin\Debug\projectname.dacpac
).
명령줄에는 옵션 1을 사용할 수 없습니다. 대신 옵션 2를 사용합니다.
VS Code 또는 Azure Data Studio의 데이터베이스 프로젝트 보기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 빌드를 선택합니다.
출력 창이 자동으로 열리면 빌드 프로세스가 표시됩니다. 오류 또는 경고가 발생한 경우, 출력 창에 표시됩니다. 빌드가 성공하면 빌드 아티팩트(.dacpac
파일)가 만들어지고 해당 위치가 빌드 출력에 포함됩니다(기본값은 bin/Debug/projectname.dacpac
).
명령줄에는 옵션 1을 사용할 수 없습니다. 대신 옵션 2를 사용합니다.
옵션 2: 빈 SQL 프로젝트를 새로 만들고 기존 데이터베이스에서 개체 가져오기
또는 프로젝트 만들기 및 개체 가져오기 단계를 별도로 수행할 수 있습니다.
1단계: 새 빈 SQL 프로젝트 만들기
개체를 가져오기 전에 새 SQL Database 프로젝트를 만들어 프로젝트를 시작합니다.
파일, 새로 만들기, 프로젝트를 차례로 선택합니다.
새 프로젝트 대화 상자의 검색 창에서 SQL Server 조건을 사용하세요. 상위 결과가 SQL Server 데이터베이스 프로젝트여야 합니다.
다음을 선택하여 다음 단계를 진행합니다. 데이터베이스 이름과 일치시킬 필요가 없는 프로젝트 이름을 제공합니다. 필요에 따라 프로젝트 위치를 확인하고 수정합니다.
만들기를 선택하여 프로젝트를 만듭니다. 빈 프로젝트가 열리고 솔루션 탐색기 보기에 표시되어 편집할 수 있게 됩니다.
파일, 새로 만들기, 프로젝트를 차례로 선택합니다.
새 프로젝트 대화 상자의 검색 창에서 SQL Server 조건을 사용하세요. 상위 결과가 SQL Server 데이터베이스 프로젝트, SDK 스타일(미리 보기)이어야 합니다.
다음을 선택하여 다음 단계를 진행합니다. 데이터베이스 이름과 일치시킬 필요가 없는 프로젝트 이름을 제공합니다. 필요에 따라 프로젝트 위치를 확인하고 수정합니다.
만들기를 선택하여 프로젝트를 만듭니다. 빈 프로젝트가 열리고 솔루션 탐색기 보기에 표시되어 편집할 수 있게 됩니다.
VS Code 또는 Azure Data Studio의 데이터베이스 프로젝트 보기에서 새 프로젝트 단추를 선택합니다.
첫 번째 프롬프트는 주로 대상 플랫폼이 SQL Server인지 Azure SQL인지에 따라 사용할 프로젝트 템플릿을 결정합니다. 특정 버전의 SQL을 선택하라는 메시지가 표시되면 대상 데이터베이스와 일치하는 버전을 선택하지만 대상 데이터베이스 버전을 알 수 없는 경우 나중에 값을 수정할 수 있으므로 최신 버전을 선택합니다.
표시되는 텍스트 입력에 프로젝트 이름을 입력합니다. 이 이름은 데이터베이스 이름과 일치시킬 필요가 없습니다.
표시되는 “폴더 선택” 대화 상자에서 프로젝트의 폴더, .sqlproj
파일 및 기타 콘텐츠가 상주할 디렉터리를 선택합니다.
SDK 스타일 프로젝트(미리 보기)를 만들지 여부를 묻는 메시지가 표시되면 예를 선택합니다.
완료된 후, 빈 프로젝트는 데이터베이스 프로젝트 보기에서 열고 편집을 위해 확인할 수 있습니다.
Microsoft.Build.Sql 프로젝트에 대한 .NET 템플릿이 설치되어 있으면 명령줄에서 새 SQL 데이터베이스 프로젝트를 만들 수 있습니다. -n
옵션은 프로젝트의 이름을 지정하고 -tp
옵션은 프로젝트 대상 플랫폼을 지정합니다.
사용 가능한 모든 옵션을 보려면 -h
옵션을 사용합니다.
# install Microsoft.Build.Sql.Templates
dotnet new sqlproject -n MyDatabaseProject
2단계: 기존 데이터베이스에서 개체 가져오기
솔루션 탐색기 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 가져오기 -> 데이터베이스...를 선택합니다. 이 옵션을 사용하지 않도록 설정하면 데이터베이스 프로젝트에 개체가 만들어질 수 있습니다. 개체를 삭제하거나 새 프로젝트를 만들 수 있습니다.
데이터베이스 가져오기 대화 상자에서 개체를 가져올 데이터베이스에 대한 연결을 선택합니다. SQL Server 개체 탐색기에서 데이터베이스에 연결한 경우 기록 목록에 표시됩니다.
기본 가져오기 설정은 스키마를 사용하여 개체를 폴더로 가져온 다음 개체 형식을 가져옵니다. 가져오기 설정을 수정하여 폴더 구조를 변경하거나 가져오는 개체에 사용 권한을 포함할 수 있습니다. 가져오기 시작
가져오기가 진행되는 동안 진행률이 데이터베이스 가져오기 대화 상자에 문자로 표시됩니다. 가져오기가 완료되면 가져온 개체가 솔루션 탐색기에 표시되고 로그는 Import Schema Logs
아래 프로젝트 디렉터리의 파일에 저장됩니다. 마침을 선택하여 프로젝트를 반환합니다.
SqlPackage CLI를 사용하여 1단계의 Visual Studio에서 만든 새 SQL 데이터베이스 프로젝트로 기존 데이터베이스에서 개체를 가져옵니다. 다음 SqlPackage 명령은 데이터베이스의 스키마를 중첩된 스키마 및 개체 유형 폴더로 구성된 MyDatabaseProject
파일로 추출합니다.
sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType
이러한 폴더가 SDK 스타일 SQL 데이터베이스 프로젝트 폴더에 배치되면 SQL 프로젝트 파일을 가져오거나 수정할 필요 없이 프로젝트에 자동으로 포함됩니다.
참고 항목
VS Code의 SQL Database Projects 확장은 데이터베이스에서 프로젝트로 개체 가져오기를 지원하지 않습니다. Azure Data Studio의 SQL Database Projects 확장을 사용하여 데이터베이스에서 개체를 가져오거나 옵션 1을 따라 VS Code의 기존 데이터베이스에서 새 프로젝트를 만듭니다.
Azure Data Studio의 SQL 데이터베이스 프로젝트 확장에서 데이터베이스 프로젝트 보기를 여세요. 마우스 오른쪽 단추로 프로젝트 노드를 클릭하고, 데이터베이스에서 프로젝트 업데이트를 선택합니다.
데이터베이스 업데이트 대화 상자에서 개체를 가져올 데이터베이스에 대한 연결을 선택합니다. 연결 보기에서 데이터베이스에 연결한 경우 기록 목록에 표시됩니다.
스키마 비교 변경 사항 보기를 선택하여 가져올 개체의 하위 집합을 선택하거나 모든 변경 사항 적용을 선택하여 모든 개체를 가져옵니다.
SqlPackage CLI를 사용하여 기존 데이터베이스의 스키마를 .dacpac
파일 또는 개별 .sql
파일로 추출할 수 있습니다. 다음 SqlPackage 명령은 데이터베이스의 스키마를 중첩된 스키마 및 개체 형식 폴더로 구성된 .sql
파일로 추출합니다.
sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType
이러한 폴더가 SDK 스타일 SQL 데이터베이스 프로젝트 폴더에 배치되면 SQL 프로젝트 파일을 가져오거나 수정할 필요 없이 프로젝트에 자동으로 포함됩니다.
3단계: SQL 프로젝트 빌드
빌드 프로세스는 프로젝트 파일에 지정된 대상 플랫폼에 대한 개체와 구문 간의 관계의 유효성을 검사합니다. 빌드 프로세스의 아티팩트 출력은 대상 데이터베이스에 프로젝트를 배포하는 데 사용할 수 있는 .dacpac
파일이며 데이터베이스 스키마의 컴파일된 모델을 포함합니다.
솔루션 탐색기에서, 프로젝트 노드를 마우스 우클릭한 후 빌드를 선택합니다.
출력 창이 자동으로 열리면 빌드 프로세스가 표시됩니다. 오류 또는 경고가 발생한 경우, 출력 창에 표시됩니다. 빌드가 성공하면 빌드 아티팩트(.dacpac
파일)가 만들어지고 해당 위치가 빌드 출력에 포함됩니다(기본값은 bin\Debug\projectname.dacpac
).
솔루션 탐색기에서, 프로젝트 노드를 마우스 우클릭한 후 빌드를 선택합니다.
출력 창이 자동으로 열리면 빌드 프로세스가 표시됩니다. 오류 또는 경고가 발생한 경우, 출력 창에 표시됩니다. 빌드가 성공하면 빌드 아티팩트(.dacpac
파일)가 만들어지고 해당 위치가 빌드 출력에 포함됩니다(기본값은 bin\Debug\projectname.dacpac
).
VS Code 또는 Azure Data Studio의 데이터베이스 프로젝트 보기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 빌드를 선택합니다.
출력 창이 자동으로 열리면 빌드 프로세스가 표시됩니다. 오류 또는 경고가 발생한 경우, 출력 창에 표시됩니다. 빌드가 성공하면 빌드 아티팩트(.dacpac
파일)가 만들어지고 해당 위치가 빌드 출력에 포함됩니다(기본값은 bin/Debug/projectname.dacpac
).
dotnet build
명령을 사용하여 명령줄에서 SQL Database 프로젝트를 빌드할 수 있습니다.
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
빌드 출력에는 오류 또는 경고와 발생하는 특정 파일 및 줄 번호가 포함됩니다. 빌드가 성공하면 빌드 아티팩트(.dacpac
파일)가 만들어지고 해당 위치가 빌드 출력에 포함됩니다(기본값은 bin/Debug/projectname.dacpac
).