重要
Azure Data Studio 将于 2026 年 2 月 28 日停用。 建议使用 Visual Studio Code。 有关迁移到 Visual Studio Code 的详细信息,请访问 Azure Data Studio 发生了什么情况?
SQL 数据库项目扩展是一个 Visual Studio Code 扩展,用于在基于项目的开发环境中开发 SQL 数据库。 兼容的数据库包括 SQL Server、Azure SQL 数据库、Azure SQL 托管实例、Fabric 中的仓库和 Fabric 中的 SQL 数据库。 SQL 项目是 SQL 对象的本地表示形式,它构成单个数据库的架构,例如表、存储过程或函数。 生成 SQL 数据库项目时,将创建一个 .dacpac 文件。 可以通过 SQL 数据库项目扩展发布项目,或通过使用
有关 SQL 项目概念的详细信息,请参阅 什么是 SQL 数据库项目?
扩展功能
SQL 数据库项目扩展提供以下功能:
- 创建新的空白Microsoft.Build.Sql 项目。
- 从连接的数据库创建新项目。
- 打开以前在 Visual Studio Code 或 SQL Server Data Tools 中创建的项目。
- 通过在项目中添加或删除对象(表、视图、存储过程)或自定义脚本来编辑项目。
- 在文件夹中组织文件和脚本。
- 添加对系统数据库或用户 DACPAC 数据包的引用。
- 生成单个项目。
- 部署单个项目。
- 从部署配置文件加载连接详细信息(SQL Windows 身份验证)和 SQLCMD 变量。
Install
可以在 Visual Studio Code 中安装 SQL 数据库项目扩展。
SQL 数据库项目扩展随 Visual Studio Code 的 mssql 扩展一起安装。
依赖关系
SQL 数据库项目扩展取决于 .NET SDK(必需)和 AutoRest.Sql(可选)。
.NET SDK
该扩展需要用于项目生成功能的 .NET SDK。 如果扩展无法检测到受支持的版本,则会提示你安装 .NET SDK。 可以下载并安装适用于 Windows、macOS 和 Linux 的 .NET SDK 。
若要 检查当前安装的 dotnet SDK 版本,请打开终端并运行以下命令:
dotnet --list-sdks
安装 .NET SDK 后,环境即可使用 SQL 数据库项目扩展。
常见问题
源列表中缺少 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 数据库项目扩展使用 .NET SDK 的 v6.x 版本。 为此,请将 global.json 文件添加到包含 SQL 项目的文件夹。
有关 SQL 项目生成故障排除的详细信息,请参阅 SQL 项目生成疑难解答。
SQLCLR
Visual Studio Code 不支持数据库项目中的 SQLCLR 对象,因为这些对象依赖于 .NET Framework,SQL 数据库项目扩展使用 .NET 生成项目。
工作空间
SQL 数据库项目包含在 Visual Studio Code 中的逻辑工作区(文件夹)中。 默认情况下,可以访问 SQL 数据库项目视图中当前工作区中打开的文件夹中的所有 SQL 项目 。
可以通过“ 项目” 窗格中的界面手动添加和删除工作区中的项目。 如有必要,可以手动编辑文件中工作区 .code-workspace 的设置。
在以下示例 .code-workspace 文件中, folders 数组列出资源管理器窗格中包含的所有文件夹。 数组dataworkspace.excludedProjects列出从settings窗格中排除的所有 SQL 项目。
{
"folders": [
{
"path": "."
},
{
"name": "WideWorldImportersDW",
"path": "..\\WideWorldImportersDW"
}
],
"settings": {
"dataworkspace.excludedProjects": [
"AdventureWorksLT.sqlproj"
]
}
}