You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure DevOps从Azure Synapse专用SQL池生成dacpac文件?

从Azure Synapse SQL Pool生成DACPAC文件的解决方案

核心工具:SqlPackage.exe

Synapse专用SQL池(原SQL数据仓库)支持SQL Server的数据应用层框架(DAC),因此可以用官方的SqlPackage.exe工具生成DACPAC,这和Azure SQL Database的底层逻辑一致,仅需适配Synapse的连接参数。


方法1:在Azure DevOps管道中直接调用SqlPackage.exe

托管代理(如windows-latest)默认已安装SqlPackage.exe,路径通常为C:\Program Files\Microsoft SQL Server\<版本号>\DAC\bin\SqlPackage.exe(SQL Server 2022对应版本号160)。你可以用CmdLine或PowerShell任务执行导出命令:

PowerShell任务示例脚本

# 配置参数
$synapseServer = "your-synapse-server.database.windows.net"
$sqlPoolName = "your-sql-pool-name"
$adminUser = "your-admin-username"
$adminPassword = "$(SynapseAdminPassword)" # 用Azure DevOps变量存储密码
$outputDacpacPath = "$(Build.ArtifactStagingDirectory)/synapse-pool.dacpac"

# 执行导出
& "C:\Program Files\Microsoft SQL Server\160\DAC\bin\SqlPackage.exe" `
    /Action:Extract `
    /SourceServerName:$synapseServer `
    /SourceDatabaseName:$sqlPoolName `
    /SourceUser:$adminUser `
    /SourcePassword:$adminPassword `
    /TargetFile:$outputDacpacPath `
    /p:ExtractAllTableData=false ` # 不需要导出数据时设为false,需要则设为true
    /p:IgnoreExtendedProperties=true # 根据需求添加额外参数

灵活适配:用DotNet Tool安装SqlPackage

如果代理上没有预装的SqlPackage,或者需要指定版本,可以用DotNetCoreCLI任务安装全局工具:

- task: DotNetCoreCLI@2
  inputs:
    command: 'custom'
    custom: 'tool'
    arguments: 'install -g microsoft.sqlpackage'

之后直接用sqlpackage命令替代完整路径即可,无需关心安装位置。


方法2:Azure Data Studio手动导出(测试场景)

如果只是临时生成DACPAC,可通过Azure Data Studio连接Synapse SQL Pool,右键数据库选择数据层应用程序 -> 提取数据层应用程序,按向导配置输出路径和选项即可。


权限注意事项

用于连接Synapse SQL Pool的账号需要具备以下权限:

  • 数据库角色db_owner(最直接)
  • 或db_datareader角色 + 读取所有架构元数据的权限

内容的提问来源于stack exchange,提问作者sac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 06:35:36