--- title: "SQL Projects Tools" description: "This overview reviews the tooling for SQL database projects." author: dzsquared ms.author: drskwier ms.reviewer: randolphwest ms.date: 12/03/2025 ms.service: sql ms.subservice: sql-database-projects ms.topic: overview ms.collection: - data-tools --- # SQL projects tools Tooling for SQL projects is available in several development environments and command line interfaces. The primary tools for SQL projects are the **SqlPackage** command line utility, **SQL Server Data Tools** (SSDT) in Visual Studio, and the **SQL Database Projects extension** for Visual Studio Code. Tools included in this article: - [Graphical tools](#graphical-tools) - [SQL Database Projects extension](../visual-studio-code-extensions/sql-database-projects/sql-database-projects-extension.md) - [SQL Server Data Tools](../../ssdt/sql-server-data-tools.md) - [Command line tools](#command-line-tools) - [SqlPackage](../sqlpackage/sqlpackage.md) ## Graphical tools These tools provide a graphical interface for SQL projects, a T-SQL editor, and a build and publish process. [SQL Database Projects extension](../visual-studio-code-extensions/sql-database-projects/sql-database-projects-extension.md) is an extension for **VS Code**. This extension provides a graphical interface for SQL projects, a T-SQL editor, and a build and publish process. The extension is also available in **Azure Data Studio** with the same functionality. [SQL Server Data Tools](../../ssdt/sql-server-data-tools.md) (SSDT) is a **Visual Studio** component that provides a graphical interface for SQL projects. SSDT provides a visual designer for tables, a T-SQL editor, and a build and publish process. ### Feature set comparison | Feature | VS Code | SSDT (VS2022-2026) | SDK-style SSDT, preview (VS2022) | | --- | --- | --- | --- | | [Create new empty project](get-started.md) | Yes | Yes | Yes | | [Create new project from existing database](tutorials/start-from-existing-database.md) | Yes | Yes | Yes | | Open existing Microsoft.Build.Sql projects | Yes | No | Yes | | Solution management and operations | No | Yes | Yes | | Project run build | Yes | Yes | Yes | | Publish project to existing server | Yes | Yes | Yes | | Publish project to a local development instance | Yes1 | Yes2 | Yes2 | | Publish options/properties | Yes | Yes | Yes | | [Target platform](concepts/target-platform.md) can be updated | Yes | Yes | Yes | | [SQLCMD variables](concepts/sqlcmd-variables.md) | Yes | Yes | Yes | | [Project references](concepts/database-references.md) | Yes | Yes | Yes | | [Dacpac references](concepts/database-references.md) | Yes | Yes | Yes | | [Package references](concepts/package-references.md) | Yes | No | No | | Publish profile creation | Yes | Yes | Yes | | SQL files can be added by placing in project folder | Yes | No | Yes | | SQL files can be excluded from build | Yes | Yes | No | | [Pre/post deployment scripts](concepts/pre-post-deployment-scripts.md) | Yes | Yes | Yes | | New object templates | Yes3 | Yes | Yes3 | | Project files can be organized into folders | Yes | Yes | Yes | | [Schema comparison](concepts/schema-comparison.md) project to database | Yes | Yes | Yes | | [Schema comparison](concepts/schema-comparison.md) database to project | Yes | Yes | No | | Graphical table designer | No | Yes | Yes | | [Code analysis](concepts/sql-code-analysis/sql-code-analysis.md) – enable/disable rules GUI | No | Yes | No | | Project properties – build output settings | No | Yes | Yes | | Project properties – database settings GUI | No | Yes | No | | Project run [code analysis](concepts/sql-code-analysis/sql-code-analysis.md) | Yes | Yes | No | | Object renaming and refactoring | No | Yes | No | | Intellisense provided in database files from project model | No | Yes | No | 1. Local development instance is a SQL Server container. 1. Local development instance is a SQL Server LocalDB instance. 1. Limited subset of templates available ## Command line tools [SqlPackage](../sqlpackage/sqlpackage.md) is the primary command line utility for the DacFx library, enabling automation of the database development tasks such as deploying a `.dacpac` to a database or extracting the objects of a database to a SQL project or `.dacpac`. Custom console applications can be built using the DacFx .NET library to automate database development tasks. The [Microsoft.SqlServer.Dac](/dotnet/api/microsoft.sqlserver.dac) namespace contains classes for creating, deploying, and extracting database objects and is foundational to the rest of the DacFx library. CI/CD pipelines can be built with command line execution or with tasks specific to `.dacpac` and SQL projects deployment. The [GitHub sql-action](https://github.com/azure/sql-action) and [SqlAzureDacpacDeployment in Azure DevOps](/azure/devops/pipelines/tasks/reference/sql-azure-dacpac-deployment-v1) are examples of tasks that use SqlPackage underneath a management layer to facilitate deploying database changes. ### Conversion tools The process of converting an [existing SQL project to an SDK-style project](howto/convert-original-sql-project.md) is done by manually editing the `.sqlproj` file to include the new SDK-style project format. Before beginning the process, it's recommended to both back up the project file and archive a `.dacpac` of the project. By comparing a "before" and "after" `.dacpac` built from the project, you can ensure that the conversion process has correctly completed. ### Project/solution management Multiple SQL projects (and other projects) can be logically grouped together in a solution file. The solution file is a container for one or more projects and is used to manage the projects as a group, including the build action. Large solutions can be broken down into smaller solutions to improve performance and manageability, or dynamically generated for the appropriate task at hand. The [slngen solution file generator](https://github.com/microsoft/slngen) is available for Microsoft.Build.Sql projects and can be used to create a solution file for a set of projects programmatically and on-demand. ## Third-party tools There are third-party tools available that provide functionality related to SQL projects and database deployment. Some tools are open source, such as [dbatools](https://dbatools.io/Publish-DbaDacPackage). Developers have shared their projects utilizing extensibility points around SQL projects, including [code analysis](concepts/sql-code-analysis/sql-code-analysis.md) rules and customizing deployment plans. Some of these projects are: - - - - ## Related content - [Project-Oriented Offline Database Development](../../ssdt/project-oriented-offline-database-development.md) - [SQL Database Projects extension](/azure-data-studio/extensions/sql-database-project-extension) - [SqlPackage](../sqlpackage/sqlpackage.md) - [GitHub sql-action](https://github.com/azure/sql-action) - [Azure DevOps SQL deployments](/azure/devops/pipelines/targets/azure-sqldb) - [Data-tier applications (DAC)](../../relational-databases/data-tier-applications/data-tier-applications.md) - [DacFx feedback repository](https://github.com/microsoft/dacfx) - [Get started with SQL database projects](get-started.md) - [Tutorial: Create and deploy a SQL project](tutorials/create-deploy-sql-project.md)