Wenn dies ein einmaliger (oder seltener) Vorgang ist, können Sie versuchen, die Daten wie hier beschrieben aus dem SSMS-Assistenten zu skripten:
http:/ /sqlblog.com/blogs/eric_johnson/archive/2010/03/08/script-data-in-sql-server-2008.aspx
Wenn Sie dies häufig tun müssen und es automatisieren möchten, können Sie auch SQL# SQLCLR-Bibliothek (die ich geschrieben habe und die meisten davon kostenlos sind, die Funktion, die Sie hier benötigen, ist es nicht). Die Funktion dafür ist DB_DumpData und es generiert auch INSERT
Aussagen.
Wenn dies jedoch eine einmalige oder seltene Aufgabe ist, probieren Sie den in Management Studio integrierten Datenexport-Assistenten aus. Das sollte es Ihnen ermöglichen, das SQL-Skript zu erstellen, das Sie in der Produktion ausführen können. Ich habe das gerade an einer Tabelle mit einem VARBINARY(MAX)
getestet Feld mit 3.365.964 Byte Daten und der Assistent zum Generieren von Skripts generierte ein INSERT
Anweisung mit dem gesamten Hex-String von 6,73 Millionen Zeichen für diesen einen Wert.
AKTUALISIERUNG:
Eine weitere schnelle und einfache Methode, die es Ihnen ermöglicht, die gesamte INSERT-Anweisung in ein SQL-Skript zu kopieren/einzufügen, ohne sich mit BCP oder dem SSMS-Exportassistenten herumschlagen zu müssen, besteht darin, den Wert einfach in KONVERTIEREN
die VARBINARY
zu VARCHAR(MAX)
Verwenden Sie den optionalen Stil "1", der Ihnen eine Hex-Zeichenfolge gibt, die mit "0x" beginnt. Sobald Sie die Hex-Zeichenfolge der Binärdaten haben, können Sie diese zu einem INSERT
verketten -Anweisung und das Ganze, wenn sie in XML
konvertiert werden , kann die gesamte VARBINARY
enthalten aufstellen. Siehe folgendes Beispiel:
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;