2011-01-28 19 views
8

Necesito generar un script de inserción de SQL para copiar datos de un servidor SQL a otro. Entonces, con .net, estoy leyendo los datos de una tabla de SQL Server determinada y escribo esto en un nuevo archivo de texto que luego se puede ejecutar para insertar estos datos en otras bases de datos.Cómo script VARBINARY para copiarlo de una base de datos a otra usando una secuencia de comandos?

Una de las columnas es una VARIEDAD (MAX).
¿Cómo y cómo puedo transformar el byte obtenido [] en texto para el script para que pueda insertarse en las otras bases de datos?

SSMS muestra esta información como una cadena hexadecimal. ¿Es este el formato para usar? puedo conseguir este mismo formato con el siguiente

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

Pero ¿cómo se puede insertar de nuevo?
me trataron

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

Esto hace una inserción, pero el valor no es el mismo que en la tabla de origen.

+0

¿Hay algún motivo por el que no desee utilizar las funciones de copia masiva o SSIS? – Tony

+0

Sí, estoy incluyendo los scripts generados con una aplicación que solo ejecuta este script. La aplicación ya existe y todo funcionó bien hasta el momento, así que no quiero cambiar esto. Simplemente aún no funciona con columnas VARBINARIAS. – Marc

Respuesta

13

Resultó que sólo puede insertar directamente la cadena hexadecimal, no hay necesidad de convertir cualquier cosa :

INSERT TableName (VarBinColumnName) 
VALUES (0xMyHexString) 

Simplemente no pregunte por qué no lo he probado directamente ...

+0

¿Por qué no lo has probado directamente? – TPAKTOPA

Cuestiones relacionadas