最近,我无法在同一订阅和数据中心内导出SQL Azure DB。
我得到的错误是:
“服务操作期间遇到错误。无法从数据库中导出模式和数据。发生一个或多个错误。发生了一个或多个错误。发生了一个或多个错误。发生了一个或多个错误。发生了一个或多个错误。序数65处的varbinary列应位于提供的SqlDataReader中的DATALENGTH(col)之前。”
数据库中没有VARBINARY列。我已经使用以下方法对此进行了检查:
SELECT table_name [Table Name], column_name [Column Name]
FROM information_schema.columns where data_type = 'VARBINARY'
唯一的重大变化是我对某些列使用了加密列类型(确定性)。这样会阻止导出并产生此类错误吗?
目前我无法出口。但是我可以复制数据库。
请多多指教。
编辑
在进一步研究中,我认为加密列正在阻止导出,因为从所有列中删除了加密之后,我现在能够导出数据库。我现在正在通过SSMS的“导出数据层”功能进行尝试。我也用MS提出过这一点。仍在进行中。
EDIT2
我已经诊断出我的问题的原因是使用VARCHAR(8000)而不是VARCHAR(MAX)作为加密列的数据类型。希望不需要将这些类型更改为VARCHAR(MAX)。
答案 0 :(得分:1)
当前,Sql Serializer在加密列上不支持长度为4000的nvarchar列。这就是您收到该错误的原因。我已经收到有关此限制将被删除的信息。