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

Azure Synapse管道如何为每行原始数据添加唯一GUID?

解决Azure Synapse导入Excel时为每行生成唯一GUID的问题

方法一:使用数据流(Data Flow)实现(推荐)

  • 在Synapse管道中添加数据流活动,替换原有的Copy Data活动
  • 配置数据源:选择Excel类型,连接到存储账户中的目标xlsx文件,设置正确的工作表和数据范围
  • 添加派生列转换:新增名为Id的列,输入表达式uuid()——这个函数会为每一行单独生成唯一GUID
  • 配置数据目标:选择SQL数据库表,确保Id列与目标表的对应列正确映射
  • 运行管道,即可完成带唯一GUID的数据导入

方法二:通过临时表中转生成GUID

  • 先创建一个SQL临时表,结构与目标表一致,但将Id列设为允许NULL(或移除非空约束)
  • 使用Copy Data活动将Excel数据完整导入到这个临时表
  • 添加存储过程活动,执行如下SQL语句为每行生成唯一GUID:
    UPDATE 临时表名称
    SET Id = NEWID()
    WHERE Id IS NULL;
    
  • 最后将临时表的数据插入到目标正式表(或直接修改临时表为正式表的约束)

为什么Copy Data活动中直接用@guid()不行?

@guid()是Synapse管道的全局表达式,在Copy Data活动启动时只会计算一次,所以所有行都会复用同一个GUID值,无法实现行级唯一标识。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:15:42