SQL Server隐藏列无法通过Fabric数据工厂管道同步至Fabric仓库
问题(翻译)
我正在通过Fabric中的Data Factory(非Azure Data Factory)管道,将SQL Server数据库中的表全量初始加载至Fabric Warehouse。其中时态表包含SysStart、SysEnd等隐藏列,但当前管道未同步这些列,我需要将其纳入同步范围。目前我的实现方式是先查询表列表,再通过“For Each Table”循环获取表数据,请问是否需要使用Select *, sysstart, sysend from Table这类显式语句来包含隐藏列?
解答
- 是的,必须用显式指定隐藏列的查询语句才能同步这些时态表的系统隐藏列。
- SQL Server时态表的SysStart、SysEnd这类列默认被标记为
HIDDEN属性,SELECT *不会返回它们,Fabric Data Factory默认的表读取逻辑也不会自动抓取这些隐藏列。 - 你需要在For Each循环里,为每个时态表生成类似
SELECT *, SysStart, SysEnd FROM [你的架构名].[表名]的查询作为数据源读取逻辑。注意要匹配SQL Server中实际的列名大小写(比如部分环境可能是小写的sysstart/sysend),同时替换占位的架构名和表名。 - 另外要确保Fabric Warehouse的目标表有对应的列来接收数据:如果是自动建表,可能需要先手动定义表结构,或者在查询里给隐藏列加别名,避免自动创建时出现命名冲突或类型不匹配的问题。
内容的提问来源于stack exchange,提问作者user176047
相关产品推荐
相关产品推荐

