txt tabla queryout habilitar exportar ejemplos delimitador codepage sql sql-server insert data-migration

tabla - Exportando datos en SQL Server como INSERT INTO



habilitar bulk insert sql server (10)

Estoy utilizando SQL Server 2008 Management Studio y tengo una tabla que quiero migrar a un servidor de base de datos diferente.

¿Hay alguna opción para exportar los datos como una inserción en el script SQL?


Después de buscar mucho, fue mi mejor tiro:

Si tiene muchos datos y necesita un script compacto y elegante, inténtelo: Paquete de herramientas SSMS

Genera una unión de todas las declaraciones de selección para insertar elementos en las tablas de destino y manejar las transacciones bastante bien.

Screenshot


En SSMS en el Explorador de objetos, haga clic con el botón derecho en la base de datos, haga clic con el botón derecho y seleccione "Tareas" y luego "Generar secuencias de comandos".

Esto le permitirá generar secuencias de comandos para una sola tabla o todas las tablas, y una de las opciones es "Datos de secuencia de comandos". Si lo establece en VERDADERO, el asistente generará una secuencia de comandos con la instrucción INSERT INTO () para sus datos.

Si usa 2008 R2 o 2012 se llama otra cosa, vea la captura de pantalla debajo de esta

2008 R2 o posterior, por ejemplo, 2012

Seleccione "Tipos de datos a secuencia de comandos" que pueden ser "Sólo datos", "Esquema y datos" o "Sólo esquema" (el valor predeterminado).

Y luego hay un paquete " SSMS Addin " en Codeplex (incluida la fuente) que promete más o menos la misma funcionalidad y algunas más (como búsqueda rápida, etc.)


Este es un ejemplo de cómo crear una secuencia de comandos de migración de datos con un cursor para iterar la tabla de origen.

SET NOCOUNT ON; DECLARE @out nvarchar(max) = '''' DECLARE @row nvarchar(1024) DECLARE @first int = 1 DECLARE cur CURSOR FOR SELECT ''('' + CONVERT(CHAR(1),[Stage]) + '','''''' + [Label] + '''''')'' FROM CV_ORDER_STATUS ORDER BY [Stage] PRINT ''SET IDENTITY_INSERT dbo.CV_ORDER_STATUS ON'' PRINT ''GO'' PRINT ''INSERT INTO dbo.CV_ORDER_STATUS ([Stage],[Label]) VALUES''; OPEN cur FETCH NEXT FROM cur INTO @row WHILE @@FETCH_STATUS = 0 BEGIN IF @first = 1 SET @first = 0 ELSE SET @out = @out + '','' + CHAR(13); SET @out = @out + @row FETCH NEXT FROM cur into @row END CLOSE cur DEALLOCATE cur PRINT @out PRINT ''SET IDENTITY_INSERT dbo.CV_ORDER_STATUS OFF'' PRINT ''GO''


Para aquellos que buscan una versión de línea de comandos, Microsoft lanzó mssql-scripter para hacer esto:

$ pip install mssql-scripter # Generate DDL scripts for all database objects and DML scripts (INSERT statements) # for all tables in the Adventureworks database and save the script files in # the current directory $ mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data / -f ''./'' --file-per-object


Para el servidor SQl Mng Studio 2016:


Por el bien de la falta de inteligencia sobre-explícita, después de seguir las instrucciones de marc_s hasta aquí ...

En SSMS en el Explorador de objetos, haga clic derecho en la base de datos, haga clic derecho y seleccione "Tareas" y luego "Generar secuencias de comandos".

... Luego veo una pantalla de asistente con " Introducción, Elegir objetos, Establecer opciones de secuencias de comandos, Resumen y Guardar o publicar secuencias de comandos " con los botones anterior, siguiente, finalizar, cancelar en la parte inferior.

En el paso Establecer opciones de scripting , debe hacer clic en "Avanzadas" para obtener la página con las opciones. Luego, como ha mencionado Ghlouw , ahora selecciona "Tipos de datos a secuencia de comandos" y Ghlouw ganancias.


Si lo utiliza SQLServer 2008R2, debe configurar el campo Tipos de datos a secuencia de comandos.


También puede consultar el "Complemento de Data Scripter" para SQL Server Management Studio 2008 desde:

http://www.mssql-vehicle-data.com/SSMS

Su lista de características:

  • Fue desarrollado en SSMS 2008 y no es compatible con la versión 2005 en este momento (¡pronto!)

  • Exporta datos rápidamente a T-SQL para MSSQL y MySQL sintaxis

  • CSV, TXT, XML también son compatibles! Aproveche todo el potencial, la potencia y la velocidad que ofrece SQL.

  • No espere a que Access o Excel hagan el trabajo de creación de scripts por usted, ya que esto podría tomar varios minutos, ¡deje que SQL Server lo haga por usted y elimine todas las conjeturas al exportar sus datos!

  • Personalice su salida de datos para copias de seguridad rápidas, manipulación de DDL y más ...

  • Cambie los nombres de tablas y esquemas de base de datos a sus necesidades, de manera rápida y eficiente

  • Exportar nombres de columnas o simplemente generar datos sin los nombres.

  • Puede elegir columnas individuales para script.

  • Puede elegir subconjuntos de datos (cláusula WHERE).

  • Puede elegir el orden de los datos (cláusula ORDER BY).

  • Gran utilidad de copia de seguridad para aquellas operaciones de depuración de base de datos sucias que requieren la manipulación de datos. No pierdas datos mientras experimentas. ¡Manipula los datos sobre la marcha!


Todo lo anterior es bueno, pero si necesitas

  1. Exportar datos desde múltiples vistas y tablas con uniones
  2. Crear instrucciones de inserción para diferentes RDBMSs
  3. Migre datos de cualquier RDBMS a cualquier RDBMS

Entonces el siguiente truco es la única manera.

Primero, aprenda cómo crear archivos de spool o exportar conjuntos de resultados desde el cliente de línea de comandos de db de origen. Segundo, aprenda cómo ejecutar sentencias SQL en la base de datos de destino.

Finalmente, cree las instrucciones de inserción (y cualquier otra declaración) para la base de datos de destino ejecutando un script sql en la base de datos de origen. p.ej

SELECT ''-- SET the correct schema'' FROM dual; SELECT ''USE test;'' FROM dual; SELECT ''-- DROP TABLE IF EXISTS'' FROM dual; SELECT ''IF OBJECT_ID(''''table3'''', ''''U'''') IS NOT NULL DROP TABLE dbo.table3;'' FROM dual; SELECT ''-- create the table'' FROM dual; SELECT ''CREATE TABLE table3 (column1 VARCHAR(10), column2 VARCHAR(10));'' FROM dual; SELECT ''INSERT INTO table3 (column1, column2) VALUES ('''''', table1.column1, '''''','''''', table2.column2, '''''');'' FROM table1 JOIN table2 ON table2.COLUMN1 = table1.COLUMN1;

El ejemplo anterior se creó para la base de datos de Oracle, donde se necesita el uso de dual para las selecciones sin tablas.

El conjunto de resultados contendrá el script para la base de datos de destino.


Si está ejecutando SQL Server 2008 R2, las opciones integradas para hacer esto en SSMS como marc_s descritas anteriormente cambiaron un poco. En lugar de seleccionar Script data = true como se muestra en su diagrama, ahora hay una nueva opción llamada "Types of data to script" justo arriba de la agrupación de "Opciones de tabla / vista". Aquí puede seleccionar solo los datos de script, el esquema y los datos o solo el esquema. Funciona de maravilla.