SQL 프로젝트 도구
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 프로젝트 열기 | X1 | X | X | |
솔루션 관리 및 운영 | X | X | ||
프로젝트 실행 빌드 | X | X | X | X |
기존 서버에 프로젝트 게시 | X | X | X | X |
로컬 개발 인스턴스에 프로젝트 게시 | X2 | X2 | X3 | X3 |
게시 옵션/속성 | 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 |
새 개체 템플릿 | X4 | X | X4 | X4 |
프로젝트 파일을 폴더로 구성할 수 있음 | 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 |
- Visual Studio 2022 프리뷰 2에서 SDK 스타일 프로젝트는
.sqlprojx
대신.sqlproj
확장을 사용합니다. - 로컬 개발 인스턴스는 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 프로젝트 및 데이터베이스 배포와 관련된 기능을 제공하는 타사 도구를 사용할 수 있습니다. dbatools와 같은 일부 도구는 오픈 소스입니다.
개발자는 코드 분석 규칙 및 배포 계획 사용자 지정을 포함하여 SQL 프로젝트와 관련된 확장성 지점을 활용하는 프로젝트를 공유했습니다. 이러한 프로젝트 중 일부는 다음과 같습니다.
- https://github.com/tcartwright/SqlServer.Rules
- https://github.com/davebally/TSQL-Smells
- https://github.com/GoEddie/DeploymentContributorFilterer