2011-01-28 5 views
8

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

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

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

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

Но как это может быть снова вставлен?
Я попытался

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

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

+0

Есть ли причина, по которой вы не хотите использовать функцию Bulk Copy или SSIS? – Tony

+0

Да, я включаю сгенерированные скрипты с приложением, которое просто запускает этот скрипт. Приложение уже существует, и все работает до сих пор, поэтому я не хочу его менять. Он просто не работает с столбцами VARBINARY. – Marc

ответ

13

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

INSERT TableName (VarBinColumnName) 
VALUES (0xMyHexString) 

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

+0

Почему вы не проверили это прямо? – TPAKTOPA

Смежные вопросы