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

能否在Synapse Workspace中通过SQL文件引用运行其他SQL文件?

在Synapse Workspace里引用并运行独立SQL文件的可行方案

先说说你用的:r命令为啥不行

:r是SSMS和Azure Data Studio里SQLCMD模式的命令,但Synapse Studio的SQL编辑器默认没开这个模式,所以直接写会报错。

开SQLCMD模式就能用:r引用脚本

要是想继续用:r,可以这么操作:

  • 打开你的主SQL文件,点编辑器顶部的SQLCMD按钮(就在运行按钮旁边)
  • 开启后,就能用:r "MyFolder/MyQuery.sql"(注意路径是相对于主文件的相对路径)来引用同Workspace文件夹里的SQL文件了

用存储过程实现的方法

要是不想依赖SQLCMD模式,也能靠存储过程动态执行:

  1. 先把独立SQL文件的内容读进变量里,用OPENROWSET就行:
    DECLARE @SQLContent NVARCHAR(MAX)
    SELECT @SQLContent = BulkColumn
    FROM OPENROWSET(BULK 'https://<你的存储账户>.dfs.core.windows.net/<Synapse工作区容器>/MyFolder/MyQuery.sql', SINGLE_CLOB) AS Data
    
    注意:得确保Synapse工作区有对应存储容器的读取权限
  2. 然后动态执行读取到的SQL内容:
    EXEC sp_executesql @SQLContent
    

额外提醒

  • 用存储过程方案时,得注意SQL注入风险,只引用可信的SQL文件
  • 要是用的是Synapse专用SQL池,OPENROWSET的使用得满足特定的权限和配置要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 07:15:02