Jika ini hanya dilakukan satu kali (atau jarang), Anda dapat mencoba membuat skrip data dari Wizard SSMS seperti yang dijelaskan di sini:
http:/ /sqlblog.com/blogs/eric_johnson/archive/2010/03/08/script-data-in-sql-server-2008.aspx
Atau, jika Anda perlu sering melakukan ini dan ingin mengotomatiskannya, Anda dapat mencoba SQL# Pustaka SQLCLR (yang saya tulis dan meskipun sebagian besar gratis, fungsi yang Anda butuhkan di sini tidak). Fungsi untuk melakukan ini adalah DB_DumpData dan juga menghasilkan INSERT
pernyataan.
Tetapi sekali lagi, jika ini adalah tugas satu kali atau jarang, cobalah wizard ekspor data yang ada di dalam Management Studio. Itu akan memungkinkan Anda untuk membuat skrip SQL yang dapat Anda jalankan di Produksi. Saya baru saja menguji ini di atas meja dengan VARBINARY(MAX)
bidang yang berisi 3.365.964 byte data dan wizard Generate Scripts menghasilkan INSERT
pernyataan dengan seluruh string heksadesimal 6,73 juta karakter untuk satu nilai tersebut.
PERBARUI:
Cara cepat dan mudah lainnya untuk melakukan ini dengan cara yang memungkinkan Anda menyalin / menempelkan seluruh pernyataan INSERT ke dalam skrip SQL dan tidak perlu repot dengan BCP atau SSMS Export Wizard adalah dengan hanya mengubah nilainya menjadi XML
. Pertama, Anda akan CONVERT
VARBINARY
ke VARCHAR(MAX)
menggunakan gaya opsional "1" yang memberi Anda string hex yang dimulai dengan "0x". Setelah Anda memiliki string hex dari data biner, Anda dapat menggabungkannya menjadi INSERT
pernyataan dan semuanya itu, ketika dikonversi ke XML
, dapat berisi seluruh VARBINARY
bidang. Lihat contoh berikut:
DECLARE @Binary VARBINARY(MAX) = CONVERT(VARBINARY(MAX),
REPLICATE(
CONVERT(NVARCHAR(MAX), 'test string'),
100000)
)
SELECT 'INSERT INTO dbo.TableName (ColumnName) VALUES ('+
CONVERT(VARCHAR(MAX), @Binary, 1) + ')' AS [Insert]
FOR XML RAW;