从Azure导出bacpac时Varbinary列消失

时间:2019-04-12 09:33:16

标签: sql-server azure sqlpackage

我从Azure中运行的SQL Server生产数据库中导出了一个bacpac文件。然后,我使用最新版本的sqlpackage将文件导入到在Linux上的docker容器中运行的新SQL Server 2017中。

其中一个表包含一个varbinary(max)列,具有32个字节的值。在Windows的SMSS中,此列很好地显示为十六进制字符串。在目标系统(Linux)上,同一列只是一堆不可打印的字符。我使用dbeaver(类似于SMSS的应用程序)进行查看。

深入挖掘,我通过解压缩bacpac文件来查看它。事实证明,model.xml根本不包含varbinary(max)列。另一方面,包含所有表数据的二进制文件必须包含该列,因为实际上在导入bacpac文件之后它确实作为表的一部分出现。

然后我尝试在导入后查看表的架构。没有提及varbinary(max)列,但所有其他列均正确列出。我使用了这样的查询:

SELECT ORDINAL_POSITION, COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'MyTable'

0 个答案:

没有答案