Утилита bcp SQL Server портит данные varbinary (max) - PullRequest
0 голосов
/ 22 мая 2018

Структура таблицы:

CREATE TABLE [dbo].[Binaries]
(
    [Id] [bigint] IDENTITY(1,1) NOT NULL,
    [Data] [varbinary](max) NULL,
    [SHA256] [varbinary](32) NULL,
    [CreatedDate] [datetime2](7) NOT NULL,
    [DeletedDate] [datetime2](7) NULL,
    [IsDeleted] [bit] NOT NULL
)

Команды:

bcp MyDb.dbo.Binaries format nul -f E:\format.fmt -T -n
bcp MyDb.dbo.Binaries OUT E:\Binaries.bcp -f E:\format.fmt -T
bcp MyDb.dbo.Binaries IN E:\Binaries.bcp -f E:\format.fmt -T

Формат файла:

14.0
6
1       SQLBIGINT           0       8       ""   1     Id                         ""
2       SQLBINARY           8       0       ""   2     Data                       ""
3       SQLBINARY           2       32      ""   3     SHA256                     ""
4       SQLDATETIME2        0       8       ""   4     CreatedDate                ""
5       SQLDATETIME2        1       8       ""   5     DeletedDate                ""
6       SQLBIT              1       1       ""   6     IsDeleted                  ""

Data столбец содержит документы, т.е. файлы PDF, после импортафайлы повреждены (разница около 5-10%, файлы имеют меньший размер).

Исходная база данных была восстановлена ​​из файла .bak.

Версия сервера:

Microsoft SQL Server 2016 (SP1-GDR) (KB4019089) - 13.0.4206.0 (X64) Enterprise Edition (64-bit) on Windows 10 Pro N 6.3 <X64> (Build 17134: ) (Hypervisor) 
...