Столбец varbinary исчезает при экспорте bacpac из Azure - PullRequest
0 голосов
/ 12 апреля 2019

Я экспортировал файл 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'
...