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