在 SQL Azure DB 中构建测试 DB 环境时,我使用从原始原型 DB 生成的 CREATE TABLE 脚本动态生成新 DB。
其中一些表需要来自原型数据库的数据,因此我为每个表创建一个外部表(引用原型数据库中的表),然后运行一个 INSERT INTO 查询,该查询从外部表中获取数据并将其插入到确切的副本中在测试数据库中。
这里的重点是新表和外部表都是使用原型数据库中内置的脚本动态生成的;因此,新表和外部表应该是原型数据库中的精确副本。
但是,对于其中一张表,我遇到了异常
大对象列支持仅限于 nvarchar(max) 数据类型。
有问题的表没有任何大于 NVARCHAR (MAX) 的内容(例如 TEXT),尽管它确实有 10 个 NVARCHAR (MAX) 列。所以我将这些列更改为 NVARCHAR (4000) 并再次运行该过程。
我现在遇到以下异常:
外部表中列“my_column_name”的数据类型与外部源上存在的基础独立表或分片表中列的数据类型不同。
我刷新并检查了prototype DB、外部表和新表中的列类型,所有这些都表明数据类型是NVARCHAR(4000)。
那么为什么它告诉我数据类型不同呢?
该列以前是 NVARCHAR (MAX) 是巧合吗?