复制活动自动创建 nvarchar(max) 列

问题描述

我有 Azure 数据工厂复制活动,可将镶木地板文件加载到 Azure Synapse。 Sink配置如下图:

enter image description here

数据加载完成后,我有一个这样的临时表结构:

enter image description here

然后我基于 stg one 创建临时表,直到今天新创建的表突然收到 nvarchar(max) 类型而不是 nvarchar(4000) 时,它一直工作正常:

enter image description here

临时表创建失败,出现明显错误“currency_abbreviation”列的数据类型不能参与列存储索引。

为什么 autocreate 表定义已更改,以及如何在没有 nvarchar(max) 列的情况下将其恢复为“正常”行为?

解决方法

我遇到了完全相同的问题!我正在使用数据工厂将 csv 文件读入我的 Azure 数据仓库,这曾经导致 nvarchar(4000) 列,但现在它们都是 nvarchar(max)。我也收到错误 列 xxx 的数据类型不能参与列存储索引。

我现在的解决方案是更改我的 SQL 代码并使用 CAST 来更改格式,但是必须在数据工厂中进行设置才能恢复以前的结果...

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...