Я экспортировал файл bacpac из рабочей базы данных SQL Server, работающей в Azure. Затем я импортировал этот файл в новый SQL Server 2017, работающий в Docker-контейнере в Linux, используя последнюю версию sqlpackage.
Одна из таблиц содержит один столбец varbinary (max) с 32-байтовыми значениями. В SMSS в Windows этот столбец отображается в виде шестнадцатеричных строк. В системе назначения (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'