SQL Database Projects 확장

SQL Database Projects 확장은 프로젝트 기반 개발 환경에서 SQL 데이터베이스를 개발하기 위한 Azure Data Studio 및 Visual Studio Code 확장입니다. 호환되는 데이터베이스에는 SQL Server, Azure SQL Database, Azure SQL Managed Instance 및 Azure Synapse SQL이 포함됩니다. SQL 프로젝트는 테이블, 저장 프로시저 또는 함수와 같은 단일 데이터베이스의 스키마를 구성하는 SQL 개체의 로컬 표현입니다. SQL Database 프로젝트가 빌드되면 출력 아티팩트가 .dacpac 파일입니다. SQL Database 프로젝트 확장을 사용하여 SQL Database 프로젝트를 게시하거나 명령줄 인터페이스 SqlPackage를 사용하여 .dacpac을 게시하여 .dacpac내용과 일치하도록 새 데이터베이스와 기존 데이터베이스를 업데이트할 수 있습니다.

Summary of SQL Database Projects containing pre-deployment and post-deployment scripts as well as database objects.

확장 기능

SQL Database Projects 확장은 다음 기능을 제공합니다.

  • 비어 있는 새 프로젝트 만들기
  • 연결된 데이터베이스에서 새 프로젝트를 만듭니다.
  • Azure Data Studio, Visual Studio Code 또는 SQL Server Data Tools에서 이전에 만든 프로젝트를 엽니다.
  • 프로젝트에서 개체(테이블, 뷰, 저장 프로시저) 또는 사용자 지정 스크립트를 추가하거나 제거하여 프로젝트를 편집합니다.
  • 폴더의 파일/스크립트 구성
  • 시스템 데이터베이스 또는 사용자 dacpac에 대한 참조를 추가합니다.
  • 단일 프로젝트를 빌드합니다.
  • 단일 프로젝트를 배포합니다.
  • 배포 프로필에서 연결 세부 정보(SQL Windows 인증) 및 SQLCMD 변수 로드

SQL Database 프로젝트 확장의 다음 기능은 현재 미리 보기로 제공됩니다.

Azure Data Studio의 SQL Database Projects 확장을 소개하는 10분 분량의 다음 동영상을 시청하세요.

설치

Azure Data Studio 및 Visual Studio Code에서 SQL Database 프로젝트 확장을 설치할 수 있습니다.

Azure Data Studio

Azure Data Studio에서 SQL Database 프로젝트 확장을 설치하려면 다음 단계를 수행합니다.

  1. 확장 관리자를 열어 사용 가능한 확장에 액세스합니다. 이렇게 하려면 확장 아이콘을 선택하거나 보기 메뉴에서 확장을 선택합니다.

  2. 확장 검색 상자에 이름 전부 또는 일부를 입력하여 SQL Database Projects 확장을 식별합니다. 세부 정보를 보려면 사용 가능한 확장을 선택합니다.

    Screenshot of Azure Data Studio, Install extension.

  3. 원하는 확장을 선택하고 설치하도록 선택합니다.

  4. 다시 로드를 선택하여 확장을 사용하도록 설정합니다(확장을 처음 설치할 때만 필요).

  5. 작업 표시줄에서 프로젝트 아이콘을 선택합니다.

참고

  • 모든 기능을 사용할 수 있도록 스키마 비교 확장을 SQL Database Projects 확장과 함께 설치하는 것이 좋습니다.

Visual Studio Code

SQL Database 프로젝트 확장은 Visual Studio Code용 mssql 확장과 함께 설치됩니다.

종속성

SQL Database Projects 확장은 .NET SDK(필수) 및 AutoRest.Sql(선택 사항)에 종속됩니다.

.NET SDK

.NET SDK는 프로젝트 빌드 기능에 필요하며 확장에서 지원되는 버전을 검색할 수 없는 경우 .NET SDK를 설치하라는 메시지가 표시됩니다. Windows, macOS 및 Linux용 .NET SDK를 다운로드하여 설치할 수 있습니다.

dotnet SDK의 현재 설치된 버전을 확인하려면 터미널을 열고 다음 명령을 실행합니다.

dotnet --list-sdks

.NET SDK를 설치한 후에는 환경에서 SQL Database Projects 확장을 사용할 준비가 된 것입니다.

일반적인 문제

원본 목록에서 누락된 Nuget.org 다음과 같은 오류 메시지가 발생할 수 있습니다.

  • error MSB4236: The SDK 'Microsoft.Build.Sql/0.1.9-preview' specified could not be found.
  • Unable to find package Microsoft.Build.Sql. No packages exist with this id in source(s): Microsoft Visual Studio Offline Packages

nuget.org 원본으로 등록된 경우 검사 명령줄에서 실행하고 dotnet nuget list source nuget.org 참조하는 항목에 대한 [Enabled] 결과를 검토합니다. nuget.org 원본으로 등록되지 않은 경우 실행dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org합니다.

지원되지 않는 .NET SDK 버전으로 인해 다음과 같은 오류 메시지가 표시될 수 있습니다.

  • error MSB4018: The "SqlBuildTask" task failed unexpectedly.
  • error MSB4018: System.TypeInitializationException: The type initializer for 'SqlSchemaModelStaticState' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. [c:\Users\ .sqlproj]_(연결된 존재하지 않는 파일의 닫는 대괄호가 일치하지 않는 경우).

여러 버전이 설치될 때 SQL Database Projects 확장에서 .NET SDK의 v6.x 버전을 사용하도록 강제하려면 SQL 프로젝트가 포함된 폴더에 global.json 파일을 추가합니다.

AutoRest.Sql

AutoRest용 SQL 확장은 SQL 프로젝트가 OpenAPI 사양 파일에서 생성될 때 SQL Database 프로젝트 확장에 의해 자동으로 다운로드되고 사용됩니다.

제한 사항

현재 SQL Database Projects 확장에는 다음과 같은 제한 사항이 있습니다.

  • 작업(빌드/게시)은 사용자 정의가 아닙니다.
  • 프로젝트의 SQLCLR 개체는 지원되지 않습니다.
  • 현재 프로젝트에 대한 코드 분석 규칙은 지원되지 않습니다.

작업 영역

SQL Database 프로젝트는 Azure Data Studio 및 Visual Studio Code의 논리 작업 영역 내에 포함됩니다. 작업 영역은 탐색기 창에 표시되는 폴더를 관리합니다. 현재 작업 영역에서 열려 있는 폴더 내의 모든 SQL 프로젝트는 기본적으로 SQL Database 프로젝트 보기에서 사용할 수 있습니다.

프로젝트 창의 인터페이스를 통해 작업 영역에서 프로젝트를 수동으로 추가하고 제거할 수 있습니다. 작업 영역의 설정은 필요한 경우 .code-workspace 파일에서 수동으로 편집할 수 있습니다.

다음 예제 .code-workspace 파일 folders 에서 배열은 탐색기 창에 포함된 모든 폴더를 나열하고 내의 dataworkspace.excludedProjects 배열 settings 은 프로젝트 창에서 제외된 모든 SQL 프로젝트를 나열합니다.

{
	"folders": [
		{
			"path": "."
		},
		{
			"name": "WideWorldImportersDW",
			"path": "..\\WideWorldImportersDW"
		}
	],
	"settings": {
		"dataworkspace.excludedProjects": [
			"AdventureWorksLT.sqlproj"
		]
	}
}

다음 단계