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

求Azure Synapse中Bulk Insert功能对应的TSQL语句

Azure Synapse GUI Bulk Insert 底层TSQL获取及OPENROWSET报错解决

一、获取GUI Bulk Insert的底层TSQL代码

直接通过Synapse Studio就能导出GUI操作对应的TSQL脚本:

  • 完成Bulk Insert的所有配置(选数据源、目标表、字段映射等)后,不要点「运行」,找到界面顶部或右下角的「脚本」按钮,点击就能导出该功能底层执行的TSQL代码。
  • 如果已经运行过Bulk Insert任务,也可以在「监控」模块找到对应任务,查看活动的「输出」详情,部分场景能直接看到执行的TSQL语句。

二、修正你的OPENROWSET插入语句

你提供的代码存在语法错误,且缺少必要的数据源配置,以下是修正后的可用版本:

基础修正版(列顺序/类型完全匹配时)

INSERT INTO [schema].[table]
SELECT * FROM OPENROWSET(
    BULK 'container/folder/filename.parquet', -- 替换为存储上的Parquet文件路径
    DATA_SOURCE = 'YourADLSDataSource', -- 替换为你在Synapse中创建的外部数据源名称
    FORMAT = 'PARQUET'
) AS SourceData

显式列映射版(列顺序/名称不匹配时)

INSERT INTO [schema].[table] (目标列1, 目标列2, 目标列3)
SELECT 源列1, 源列2, 源列3 FROM OPENROWSET(
    BULK 'container/folder/filename.parquet',
    DATA_SOURCE = 'YourADLSDataSource',
    FORMAT = 'PARQUET'
) WITH (
    源列1 INT,
    源列2 VARCHAR(100),
    源列3 DATE
) AS SourceData

三、常见报错原因及解决

  • 语法错误:你原代码中INSERT INTO [schema].[table]后面多了一个左括号,这是直接导致报错的原因之一。
  • 权限不足:确保执行TSQL的账号拥有外部数据源的访问权限(比如ADLS的Blob Contributor权限),以及目标表的INSERT权限。
  • 路径/数据源错误:BULK路径要与外部数据源的根路径对应,比如外部数据源指向ADLS容器,路径就填folder/filename.parquet;同时要确认数据源名称拼写正确。
  • 列类型不兼容:Parquet文件的列类型与目标表列类型不匹配时,需要在WITH子句中显式定义匹配的类型,或在SELECT中做类型转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:05:26