SQL 项目工具

SQL 项目的工具可在多个开发环境和命令行接口中使用。 SQL 项目的主要工具是 SqlPackage 命令行实用工具、Visual Studio 中的 SQL Server Data Tools (SSDT)和 Visual Studio Code 的 SQL 数据库项目扩展

本文中包含的工具:

图形工具

这些工具为 SQL 项目、T-SQL 编辑器以及生成和发布过程提供图形界面。

SQL 数据库项目扩展VS Code 的扩展。 此扩展为 SQL 项目、T-SQL 编辑器以及生成和发布过程提供图形界面。 该扩展也适用于具有相同功能的 Azure Data Studio

SQL Server Data Tools (SSDT) 是 Visual Studio 组件,它为 SQL 项目提供图形界面。 SSDT 为表、T-SQL 编辑器以及生成和发布过程提供可视化设计器。

功能集比较

功能 VS Code SSDT (VS2022-2026) SDK 样式 SSDT,预览版 (VS2022)
创建新的空项目 是的 是的 是的
从现有数据库创建新项目 是的 是的 是的
打开现有的 Microsoft.Build.Sql 项目 是的 是的
解决方案管理和操作 是的 是的
项目运行生成 是的 是的 是的
将项目发布到现有服务器 是的 是的 是的
将项目发布到本地开发实例 1 2 2
发布选项/属性 是的 是的 是的
可以更新目标平台 是的 是的 是的
SQLCMD 变量 是的 是的 是的
项目引用 是的 是的 是的
Dacpac 引用 是的 是的 是的
包引用 是的
发布配置文件创建 是的 是的 是的
可以通过将 SQL 文件放置在项目文件夹中来添加 是的 是的
可以从生成中排除 SQL 文件 是的 是的
部署前/后脚本 是的 是的 是的
新建对象模板 3 是的 3
项目文件可以组织到文件夹中 是的 是的 是的
架构比较项目到数据库 是的 是的 是的
架构比较数据库到项目 是的 是的
图形表设计器 是的 是的
代码分析 - 启用/禁用规则 GUI 是的
项目属性 – 生成输出设置 是的 是的
项目属性 - 数据库设置 GUI 是的
项目运行 代码分析 是的 是的
对象重命名和重构 是的
项目模型中的数据库文件中提供的 Intellisense 是的
  1. 本地开发实例是 SQL Server 容器。
  2. 本地开发实例是 SQL Server LocalDB 实例。
  3. 可用模板的有限子集

命令行工具

SqlPackage 是 DacFx 库的主要命令行实用工具,可实现数据库开发任务的自动化,例如将 .dacpac 部署到数据库或者将数据库的对象提取到 SQL 项目或 .dacpac

可以使用 DacFx .NET 库生成自定义控制台应用程序,以自动执行数据库开发任务。 Microsoft.SqlServer.Dac 命名空间包含用于创建、部署和提取数据库对象的类,是 DacFx 库的其余部分的基础。

可以使用命令行执行或特定于 .dacpac 和 SQL 项目部署的任务生成 CI/CD 管道。 Azure DevOps 中的 GitHub sql-actionSqlAzureDacpacDeployment 是使用管理层下的 SqlPackage 促进部署数据库更改的任务示例。

转换工具

现有 SQL 项目转换为 SDK 样式项目的过程是通过手动编辑 .sqlproj 文件以包含新的 SDK 样式项目格式来完成的。 在开始此过程之前,建议同时备份项目文件和存档项目的 .dacpac。 通过比较从项目生成的“before”和“after”.dacpac,可确定转换过程已正确完成。

项目/解决方案管理

可以在解决方案文件中将多个 SQL 项目(和其他项目)逻辑分组在一起。 解决方案文件是一个或多个项目的容器,用于将项目作为组进行管理,包括生成操作。 大型解决方案可以分解为较小的解决方案,以提高性能和可管理性,或者为手头的相应任务动态生成。 slngen 解决方案文件生成器适用于 Microsoft.Build.Sql 项目,并且可用于以编程方式和按需方式为一组项目创建解决方案文件。

第三方工具

提供与 SQL 项目和数据库部署相关的功能的第三方工具。 某些工具是开源工具,例如 dbatools

开发人员已利用 SQL 项目的扩展点(包括代码分析规则和自定义部署计划)共享其项目。 其中一些项目包括: