Как написать скрипт VARBINARY, чтобы скопировать его из одной БД в другую с помощью скрипта?

Мне нужно создать скрипт вставки SQL для копирования данных с одного SQL Server на другой. Итак, с .net я читаю данные из данной таблицы SQL Server и записываю их в новый текстовый файл, который затем можно выполнить, чтобы вставить эти данные в другие базы данных.

Один из столбцов — это VARBINARY(MAX).
Как я должен и могу преобразовать полученный byte[] в текст для скрипта, чтобы его можно было вставить в другие базы данных?

SSMS отображает эти данные в виде шестнадцатеричной строки. Этот формат использовать? Я могу получить этот же формат со следующим

BitConverter.ToString(<MyByteArray>).Replace("-", "")

Но как это снова вставить?
Я пробовал

CONVERT(VARBINARY(MAX), "0xMyHexString")

Это делает вставку, но значение не такое, как в исходной таблице.


person Marc    schedule 28.01.2011    source источник
comment
Есть ли причина, по которой вы не хотите использовать функции массового копирования или SSIS?   -  person Tony    schedule 28.01.2011
comment
Да, я включаю сгенерированные скрипты в приложение, которое просто запускает этот скрипт. Приложение уже существует, и до сих пор все работало нормально, поэтому я не хочу его менять. Это просто еще не работает со столбцами VARBINARY.   -  person Marc    schedule 28.01.2011


Ответы (2)


Оказалось, что можно просто вставить шестнадцатеричную строку напрямую, ничего конвертировать не нужно:

INSERT TableName (VarBinColumnName) 
VALUES (0xMyHexString)

Только не спрашивайте, почему я не проверил это напрямую...

person Marc    schedule 28.01.2011
comment
Почему вы не проверили это напрямую? - person TPAKTOPA; 17.01.2018
comment
Лучший ответ когда-либо. Я полностью усложнил это. :) - person Tim Lara; 03.04.2018