Hvis dette er en enkelt (eller sjældent) ting at gøre, kan du prøve at scripte dataene ud fra SSMS-guiden som beskrevet her:
http:/ /sqlblog.com/blogs/eric_johnson/archive/2010/03/08/script-data-in-sql-server-2008.aspx
Eller, hvis du har brug for at gøre dette ofte og vil automatisere det, kan du prøve SQL# SQLCLR-bibliotek (som jeg skrev, og selvom det meste af det er gratis, er den funktion du har brug for her ikke). Funktionen til at gøre dette er DB_DumpData og det genererer også INSERT
udsagn.
Men igen, hvis dette er en enkelt eller sjælden opgave, så prøv dataeksportguiden, der er indbygget i Management Studio. Det skulle give dig mulighed for derefter at oprette SQL-scriptet, som du kan køre i produktion. Jeg har lige testet dette på en tabel med en VARBINARY(MAX)
felt, der indeholder 3.365.964 bytes data, og guiden Generer scripts genererede en INSERT
sætning med hele hex-strengen på 6,73 millioner tegn for den ene værdi.
OPDATERING:
En anden hurtig og nem måde at gøre dette på på en måde, der giver dig mulighed for at kopiere / indsætte hele INSERT-sætningen i et SQL-script og ikke behøver at genere BCP eller SSMS Export Wizard, er blot at konvertere værdien til
kode>XML . Først skal du KONVERTERE
VARBINARY
til VARCHAR(MAX)
ved at bruge den valgfrie stil "1", som giver dig en hex-streng, der starter med "0x". Når du har hex-strengen af de binære data, kan du sammenkæde det til en INSERT
sætning og hele den ting, når den konverteres til XML
, kan indeholde hele VARBINARY
Mark. Se følgende eksempel:
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;