SQL 프로젝트용 도구는 여러 개발 환경 및 명령줄 인터페이스에서 사용할 수 있습니다. SQL 프로젝트의 기본 도구는 SqlPackage 명령줄 유틸리티, Visual Studio의 SQL Server Data Tools (SSDT), Azure Data Studio 및 Visual Studio Code용 SQL Database 프로젝트 확장입니다.
이 문서에 포함된 도구:
그래픽 도구
이러한 도구는 SQL 프로젝트, T-SQL 편집기 및 빌드 및 게시 프로세스에 대한 그래픽 인터페이스를 제공합니다.
SSDT(SQL Server Data Tools)는 SQL 프로젝트에 대한 그래픽 인터페이스를 제공하는 Visual Studio 구성 요소입니다. SSDT는 테이블용 비주얼 디자이너, T-SQL 편집기 및 빌드 및 게시 프로세스를 제공합니다.
SQL 데이터베이스 프로젝트 확장은 Azure Data Studio(ADS) 및 VS Code의 확장 프로그램입니다. 이 확장은 SQL 프로젝트, T-SQL 편집기 및 빌드 및 게시 프로세스에 대한 그래픽 인터페이스를 제공합니다.
기능 세트 비교
기능 | SDK 스타일 SSDT | SSDT | ADS | VS Code |
---|---|---|---|---|
새로운 빈 프로젝트 만들기 | X | X | X | X |
기존 데이터베이스에서 새 프로젝트 만들기 | X | X | X | |
기존 Microsoft.Build.Sql 프로젝트 열기 | X | X | X | |
솔루션 관리 및 운영 | X | X | ||
프로젝트 실행 빌드 | X | X | X | X |
기존 서버에 프로젝트 게시 | X | X | X | X |
로컬 개발 인스턴스에 프로젝트 게시 | X1 | X1 | X2 | X2 |
게시 옵션/속성 | X | X | X | |
대상 플랫폼 업데이트 가능 | X | X | X | X |
SQLCMD 변수 | X | X | X | X |
프로젝트 참조 | X | X | ||
Dacpac 참조 | X | X | X | |
패키지 참조 | X | |||
게시용 프로필 생성 | X | X | X | |
프로젝트 폴더에 배치하여 SQL 파일을 추가할 수 있음 | X | X | X | |
빌드에서 SQL 파일을 제외할 수 있음 | X | X | ||
배포 전 및 배포 후 스크립트 | X | X | X | X |
새 개체 템플릿 | X3 | X | X3 | X3 |
프로젝트 파일을 폴더로 구성할 수 있음 | X | X | X | X |
스키마 비교 프로젝트를 데이터베이스와 비교하기 | X | X | ||
스키마 비교 프로젝트에 대한 데이터베이스 | X | X | ||
그래픽 테이블 디자이너 | X | X | ||
코드 분석 – 규칙 사용/사용 안 함 | X | |||
프로젝트 속성 – 빌드 출력 설정 | X | X | ||
프로젝트 속성 – 기본 스키마 | X | |||
프로젝트 속성 – 데이터베이스 설정 | X | |||
프로젝트 실행 코드 분석 독립 실행형 | X | |||
개체 이름 바꾸기 및 리팩터링 | X | |||
프로젝트 모델에서 데이터베이스 파일에 제공된 Intellisense | X | |||
SQL Server 개체 탐색기 연결/개체 보기 | X | X | X | X |
SQL Server 개체 탐색기 상황에 맞는 메뉴 항목 | X | X | X | |
SQL Server 쿼리 편집기 연결 | X | X | X |
- 로컬 개발 인스턴스는 SQL Server LocalDB 인스턴스입니다.
- 로컬 개발 인스턴스는 SQL Server 컨테이너입니다.
- 사용 가능한 템플릿의 제한된 하위 집합
명령줄 도구.
SqlPackage는 DacFx 라이브러리의 기본 명령줄 유틸리티로, 데이터베이스에 .dacpac
를 배포하거나 데이터베이스 개체를 SQL 프로젝트 또는 .dacpac
에 추출하는 등의 데이터베이스 개발 작업을 자동화할 수 있습니다.
DacFx .NET 라이브러리를 사용하여 사용자 지정 콘솔 애플리케이션을 빌드하여 데이터베이스 개발 작업을 자동화할 수 있습니다. Microsoft.SqlServer.Dac 네임스페이스에는 데이터베이스 개체 만들기, 배포 및 추출을 위한 클래스가 포함되어 있으며 DacFx 라이브러리의 나머지 부분에 기본이 됩니다.
CI/CD 파이프라인은 명령줄 실행 또는 .dacpac
및 SQL 프로젝트 배포에 특정한 작업으로 구축할 수 있습니다.
GitHub sql-action 및 Azure DevOps의 SqlAzureDacpacDeployment는 관리 계층 아래에서 SqlPackage를 사용하여 데이터베이스 변경 내용을 쉽게 배포하는 작업의 예입니다.
변환 도구
기존 SQL 프로젝트를 SDK 스타일 프로젝트로 변환하는 프로세스는 새 SDK 스타일 프로젝트 형식을 포함하도록 파일을 수동으로 편집 .sqlproj
하여 수행됩니다. 프로세스를 시작하기 전에 프로젝트 파일을 백업하고 프로젝트의 .dacpac
버전을 보관하는 것이 좋습니다. 프로젝트에서 빌드된 "before" 및 "after" .dacpac
를 비교하여 변환 프로세스가 올바르게 완료되었는지 확인할 수 있습니다.
프로젝트/솔루션 관리
여러 SQL 프로젝트(및 기타 프로젝트)를 솔루션 파일에서 논리적으로 그룹화할 수 있습니다. 솔루션 파일은 하나 이상의 프로젝트에 대한 컨테이너이며 빌드 작업을 포함하여 프로젝트를 그룹으로 관리하는 데 사용됩니다. 대규모 솔루션을 더 작은 솔루션으로 세분화하여 성능 및 관리 효율성을 개선하거나 적절한 작업에 대해 동적으로 생성할 수 있습니다. slngen 솔루션 파일 생성기는 Microsoft.Build.Sql 프로젝트에 사용할 수 있으며 프로그래밍 방식 및 주문형 프로젝트 집합에 대한 솔루션 파일을 만드는 데 사용할 수 있습니다.
타사 도구
SQL 프로젝트 및 데이터베이스 배포와 관련된 기능을 제공하는 타사 도구를 사용할 수 있습니다. dbatools와 같은 일부 도구는 오픈 소스입니다.
개발자는 코드 분석 규칙 및 배포 계획 사용자 지정을 포함하여 SQL 프로젝트와 관련된 확장성 지점을 활용하는 프로젝트를 공유했습니다. 이러한 프로젝트 중 일부는 다음과 같습니다.
- https://github.com/tcartwright/SqlServer.Rules
- https://github.com/davebally/TSQL-Smells
- https://github.com/ErikEJ/SqlServer.Rules
- https://github.com/GoEddie/DeploymentContributorFilterer