本技能围绕 SQL Server 2025 与 SqlPackage 170.2.70(2025 年 10 月版本)展开,面向数据库开发、部署与 CI/CD 场景。
一、SQL Server 2025 资料将其描述为「企业 AI 就绪数据库」,具备原生向量数据库能力、内置 AI 模型集成、从本地到云的语义搜索。引擎特性完整目录(原生向量数据库与用于 AI / RAG 负载的 DiskANN 索引、JSON 增强、正则表达式、模糊搜索、变更事件流、安全与敏感度分类、性能与智能查询处理新增项、T-SQL 改进、Always Encrypted 更新)位于 references/sql-server-2025-features.md,在规划 2025 升级或在 SSDT 项目中采用这些引擎特性时加载该参考。
发布状态:截至 2025 年 10 月,SQL Server 2025(17.x)处于 Release Candidate(RC1)阶段,公开预览始于 2025 年 5 月。预测 GA 日期为 2025 年 11 月 12 日(依据历史发布模式:SQL Server 2019 为 11 月 4 日,SQL Server 2022 为 11 月 16 日),预计在 Microsoft Ignite 大会(2025 年 11 月 18–21 日)公布。资料明确说明:SQL Server 2025 尚未正式发布,所述功能仅在 RC 版本中供测试使用。
二、SqlPackage 170.x(2025 年发布) 最新版本 170.2.70(2025 年 10 月 14 日),2025 年共三个主要版本:170.2.70(2025 年 10 月 14 日,当前)、170.1.61(2025 年 7 月 30 日,数据虚拟化)、170.0.94(2025 年 4 月 15 日,SQL Server 2025 初始支持)。
关键特性:
- 数据虚拟化(170.1.61+):支持 Azure SQL 数据库数据虚拟化对象的导入/导出/提取/发布;支持 Azure SQL 数据库配合 Azure Blob Storage 的 Parquet 文件;对 CLR 类型与大于 1MB 的 LOB 自动回退到 BCP。
- 新数据类型:VECTOR(最高 3,996 维,半精度 2 字节浮点)、JSON(Azure SQL 数据库原生 JSON 数据类型)。
- 新权限(170.0+):ALTER ANY INFORMATION PROTECTION(SQL Server 2025 与 Azure SQL)、ALTER ANY EXTERNAL MIRROR(Azure SQL 与 Microsoft Fabric 中的 SQL 数据库)、CREATE/ALTER ANY EXTERNAL MODEL(AI/ML 模型管理)。
- 部署选项:/p:IgnorePreDeployScript=True/False 跳过部署前脚本;/p:IgnorePostDeployScript=True/False 跳过部署后脚本。
三、SqlPackage 命令示例 资料给出 Publish / Extract / Export 的调用方式,包括新的目标平台参数 /p:TargetPlatform=SqlServer2025、/p:ExtractAllTableData=False、/p:VerifyExtraction=True 等。部署到 SQL Server 2025 还给出包含 /p:BlockOnPossibleDataLoss、/p:IncludeCompositeObjects、/p:DropObjectsNotInSource、/p:DoNotDropObjectTypes、/p:GenerateSmartDefaults、/DiagnosticsFile 的完整命令行,以及对应的 MSBuild 发布配置文件(Database.publish.xml)与 msbuild /t:Publish 调用方式。
四、ScriptDom 170.0.64 新增用于 SQL Server 2025 语法解析的 ScriptDom 版本:NuGet 包 Microsoft.SqlServer.TransactSql.ScriptDom 170.0.64,示例使用 TSql170Parser(true) 解析字符串,并通过 out 参数收集 ParseError。资料称其支持 SQL Server 2025 新增 T-SQL 特性。
五、Microsoft.Build.Sql 2.0.0 GA(2025) 资料称之为重要里程碑:Microsoft.Build.Sql SDK 于 2025 年进入 General Availability,最新版本 2.0.0(生产就绪)。相对预览版的破坏性变更:不再处于预览状态,推荐用于所有新数据库项目;完整跨平台支持(Windows/Linux/macOS);要求 .NET 8+(预览版为 .NET 6+)。
SQL Server 2025 支持状态:SQL Server 2025 目标平台支持将在 2.0.0 之后的 Microsoft.Build.Sql 版本中提供。资料给出 SDK 风格项目的变通方案:在 Database.sqlproj 中使用 DSP 为 Sql160DatabaseSchemaProvider、TargetFramework 为 net8.0、SqlServerVersion 为 Sql160,并注明 2025 特性在运行时数据库仍可用,仅构建期校验使用 Sql160 提供程序。
Visual Studio 支持:SDK 风格 SQL 项目需要 Visual Studio 2022 版本 17.12 或更高。注意:与原有 SQL 项目(旧版 SSDT)的并行安装不受支持。
六、CI/CD 最佳实践(2025) 资料给出的原则包括:基于状态的部署(推荐,源码代表当前数据库状态,SqlPackage 自动生成增量脚本,优于基于迁移的方式);测试与质量(tSQLt 对存储过程与函数做单元测试,测试失败即中断流水线并立即通知,绝不在测试失败后继续部署);安全(CI/CD 优先使用 Windows 身份验证,避免明文密码,凭据不得提交到源码管理,使用 Azure Key Vault 或 GitHub Secrets 存放连接字符串);版本控制(所有数据库对象纳入源码管理,测试脚本纳入版本控制并在构建步骤执行,签入需填写注释,配置自定义签入策略)。
文中提供 GitHub Actions 工作流示例(签出、安装 .NET 8、安装 SqlPackage 170.2.70、构建 DACPAC、运行 tSQLt 单元测试、生成部署报告、发布到 SQL Server 2025、上传部署日志与报告制品)与 Azure DevOps 示例(MSBuild 构建数据库项目、SqlAzureDacpacDeployment 任务发布,additionalArguments 传入 /p:TargetPlatform=SqlServer2025)。
七、诊断功能 SqlPackage 诊断命令示例:通过 /DiagnosticsLevel:Verbose 与 /DiagnosticPackageFile:diagnostics.zip 生成诊断包,资料称其中包含部署日志、性能指标、错误详情与架构比较结果。
八、Microsoft Fabric 数据仓库支持 SqlPackage 162.5+ 起据称完整支持 Microsoft Fabric 中的 SQL 数据库,资料给出发布到 Fabric Warehouse 与从 Fabric 提取的命令示例(/p:DatabaseEdition=Fabric、/p:DatabaseServiceObjective=SqlDbFabricDatabaseSchemaProvider),以及 Fabric 专用新权限 ALTER ANY EXTERNAL MIRROR 的 GRANT 示例。
九、SQL Server 2025 最佳实践 资料列出:使用目标平台规范(TargetPlatform 设为 SqlServer2025);测试向量操作(SELECT SERVERPROPERTY('IsVectorSupported'));监控 AI 模型性能(查询 sys.dm_exec_external_model_stats 统计执行时间与次数);实施敏感度分类(ADD SENSITIVITY CLASSIFICATION 为 PII 列标注,示例中标签为 'Confidential - GDPR'、信息类型为 'Email')。
十、其他约束(技能内指南) 资料还包含面向工具使用的操作约束:Windows 上使用 Edit/Write 工具时文件路径必须使用反斜杠而非正斜杠;除非用户明确要求,不得创建新的文档文件,优先更新现有 README.md,保持仓库根目录整洁;文档风格应简洁、直接、专业。
限制与未提供信息 SQL Server 2025 截至资料所述时间尚未 GA,仅 RC1 阶段可用于测试;predicted GA 日期为基于历史模式的预测,非官方确定日期。Microsoft.Build.Sql 对 SQL Server 2025 目标平台的构建期支持尚未提供,需按上述变通方案处理。资料未提供定价、收费模式、许可条款、性能基准数据、具体平台支持矩阵之外的细节,这些信息暂未提供。