2011-01-28 8 views
8

Potrzebuję wygenerować skrypt wstawiania SQL, aby skopiować dane z jednego SQL Server na inny. Tak więc z .net, czytam dane danej tabela programu SQL Server i zapisz go do nowego pliku tekstowego, który następnie można wykonać w celu wstawienia tych danych do innych baz danych.Jak skryptować VARBINARY, aby skopiować go z jednego DB do innego za pomocą skryptu?

Jedną z kolumn jest VARBINARY (MAX).
Jak należy i czy mogę przekształcić otrzymany bajt [] na tekst skryptu, aby można go było wstawić do innych baz danych?

SSMS pokazuje te dane jako ciąg szesnastkowy. Czy to jest format do użycia? mogę pobrać ten sam format, z następującym

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

Ale jak to może być ponownie włożony?
Próbowałem

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

to robi wkładkę, ale wartość nie jest taka sama jak w tabeli źródłowej.

+0

Czy istnieje powód, dla którego nie chcesz korzystać z funkcji kopiowania zbiorczego lub SSIS? – Tony

+0

Tak, dołączam wygenerowane skrypty do aplikacji, która uruchamia ten skrypt. Aplikacja już istnieje i wszystko działało dobrze, więc nie chcę tego zmieniać. Po prostu nie działa jeszcze z kolumnami VARBINARY. – Marc

Odpowiedz

13

Okazało się, można po prostu bezpośrednio wstawić ciąg szesnastkowy, nie trzeba konwertować wszystko :

INSERT TableName (VarBinColumnName) 
VALUES (0xMyHexString) 

Po prostu nie pytaj, dlaczego nie przetestowałem tego bezpośrednio ...

+0

Dlaczego nie przetestowałeś tego bezpośrednio? – TPAKTOPA

Powiązane problemy