2010-11-03 11 views
11

¿Cómo puedo exportar una tabla de una base de datos SQL Server 2000 a un archivo .sql como un grupo de instrucciones INSERT INTO?¿Cómo exporto los datos de una tabla a las instrucciones INSERT?

Uno de los campos en la tabla es un tipo de datos de texto y contiene HTML, por lo que hacerlo a mano sería bastante lento.

Tengo acceso a SQL Server Management Studio 2008 para acceder a la base de datos de SQL Server 2000.

Respuesta

17

Mira la SSMS Tool Pack - que es un gran, GRATIS complemento para SQL Server Management Studio, que hace un montón de cosas - entre otros que puede generar instrucciones INSERT de una tabla dada.

alt text

+0

Vaya, ese complemento se ve muy bien, espero que funcione también con Express Edition. –

+2

A partir de SQLSMS 2012, la herramienta ya no es gratuita, aunque ofrece una prueba de tiempo de 30 días. Vea la respuesta de mobill, hay una forma incorporada de lograr esto. – Jerther

2

Si puede utilizar otra gestión DB apps de la forma más rápida sería utilizar una herramienta como SqlDbx que tiene una "Exportar como inserciones (SQL)" función incorporada (sólo hay que ejecutar una consulta como SELECT * FROM Table y luego usar el menú contextual de la cuadrícula de resultados).

Si es necesario atenerse a SQL Management Studio entonces se podría utilizar un procedimiento almacenado como éste:

http://vyaskn.tripod.com/code/generate_inserts.txt

Se genera un conjunto de resultados con la sentencia INSERT de SQL para cada fila del objetivo mesa. Luego puede exportar los resultados a un archivo, o simplemente copiarlos al portapapeles y pegarlos en la ventana de consulta (funciona bien incluso con varios megabytes de datos).

9

He estado usando este procedimiento almacenado durante mucho tiempo: sp_generate_inserts: la versión y la versión 20002005 (and up).

que lo utilice como esto:

sp_generate_inserts 'thetablename' 

o si desea filtrar:

sp_generate_inserts 'thetablename', @from='from ... where ... order by ...' 

El sp volverá declaraciones inserciones como resultado de la consulta. No olvide modificar la configuración: aumente la cantidad máxima de caracteres que se muestran en cada columna (herramientas - opciones - resultados de la consulta).

17

Al actualizar desde esta Q & A estaba en la parte superior de los resultados de búsqueda cuando estaba buscando la respuesta.

En MSSQL 2008 R2:

haga clic derecho en la base de datos: Tareas -> generar scripts ...

El diálogo Generar y publicar scripts de pop-up. La página de introducción no tiene valor. Haga clic en "Siguiente"

Elija "Seleccionar objetos específicos de la base de datos" y luego seleccione la (s) tabla (s) para las que desea obtener inserciones. Haga clic en Siguiente y el cuadro de diálogo avanzará a "Establecer opciones de secuencia de comandos".

Haga clic en Opciones avanzadas y debería ver:

enter image description here

Desplácese por la lista de opciones hasta que encuentre "Tipos de datos de secuencia de comandos". Haga clic en esa fila y seleccione "Solo datos" en el menú desplegable. Haga clic en Aceptar". Elija sus opciones de Guardar y haga clic en "Siguiente" varias veces.

Nota - La salida también incluye lo siguiente después de cada 100 inserciones.

GO 
    print 'Processed 200 total records' 
+1

No sé, esta no es la mejor respuesta. Tal vez porque no se aplica a SQL Server 2000. Pero esto es exactamente lo que estaba buscando. –

+0

Funcionó para mí también, gracias. –

+0

Cambié a SSMS 2012 y, por alguna razón, la secuencia de comandos ya no incluye la impresión de "procesos de registros xxx". ¿Cómo lo recupero? – ulu

Cuestiones relacionadas