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

如何在Azure DevOps中运行Azure Synapse Analytics工作区的SQL脚本?

解决方案:运行Azure Synapse工作区中的SQL脚本(无服务器SQL池)

方法1:使用Azure PowerShell

你已通过Get-AzSynapseSqlScript获取脚本列表,每个脚本对象包含Content属性(存储SQL脚本内容),可通过Invoke-AzSynapseSqlCommand直接执行脚本内容,指定无服务器SQL池(默认名称为builtin):

# 遍历获取到的SQL脚本列表
foreach ($script in $scripts) {
    Write-Host "正在执行脚本: $($script.Name)"
    # 执行脚本内容,指定无服务器SQL池
    Invoke-AzSynapseSqlCommand -WorkspaceName $workspaceName `
                               -SqlPoolName "builtin" `
                               -Query $script.Content
}

若需处理执行结果,可将输出保存至变量:

$executionResult = Invoke-AzSynapseSqlCommand -WorkspaceName $workspaceName `
                                              -SqlPoolName "builtin" `
                                              -Query $script.Content

方法2:使用Azure CLI

你之前尝试的az synapse sql-script invoke需补充无服务器SQL池参数,批量执行脚本列表时需先提取脚本内容再执行:

单个已保存脚本执行

调用工作区中已保存的SQL脚本,需指定--sql-pool-name参数指向无服务器池:

az synapse sql-script invoke --resource-group $resourceGroupName \
                             --workspace-name $workspaceName \
                             --name $scriptName \
                             --sql-pool-name "builtin" \
                             --output table

批量执行脚本列表

先获取所有脚本名称,再逐个提取内容并执行:

# 获取所有SQL脚本名称
script_names=$(az synapse sql-script list --workspace-name $workspaceName --query "[].name" -o tsv)

# 遍历执行每个脚本
for script_name in $script_names; do
    echo "正在执行脚本: $script_name"
    # 提取脚本内容
    script_content=$(az synapse sql-script show --workspace-name $workspaceName --name $script_name --query "content" -o tsv)
    # 执行脚本
    az synapse sql query execute --workspace-name $workspaceName \
                                 --sql-pool-name "builtin" \
                                 --query "$script_content" \
                                 --output table
done

注意事项

  • 权限补充:你的SPN除订阅/资源组的参与者权限外,还需拥有Synapse工作区的Synapse SQL Contributor角色,或针对无服务器SQL池的SQL执行权限,否则会触发权限不足错误。
  • 池名称验证:默认无服务器SQL池名称为builtin,若你的环境使用自定义名称,请替换为对应值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 21:37:22