2008-08-21 12 views
53

Tengo una base de datos con una tabla Clientes que tienen algunos datos

Tengo otra base de datos en la oficina que dice que todo es igual, pero mi table Clientes está vacío

¿Cómo puedo crear un archivo sql en SQL Server 2005 (T-SQL) que tome todo en la tabla Clientes de la primera base de datos, crea un, digamos, buildcustomers.sql, comprima ese archivo, cópielo a través de la red, ejecútelo en mi SQL Server y ¡listo! mi mesa Clientes está lleno

¿Cómo puedo hacer lo mismo para una base de datos completa?SQL Server 2005 - Exportar tabla mediante programación (ejecutar un archivo .sql para reconstruirlo)

+0

para elegir cierta tabla con los datos de secuencia de comandos, intente [SQL Formateador Add-In para SSMS] (http : //ssmsaddins.codeplex.com/) – Mandoleen

+0

Hubo una [pregunta] (http://stackoverflow.com/questions/18199/how-do-i-generate-scripts-that-will-rebuild-my-ms- sql-server-2005-database-with) sobre esto ayer, y la mejor solución fue el [Asistente de publicación de bases de datos] (http://www.codeplex.com/sqlhost/Wiki/View.aspx?title=Database%20Publishing% 20 Wizard). –

+0

Otra forma sería utilizar la excelente herramienta SqlCompare de Redgate – edosoft

Respuesta

1

Siempre puede exportar los datos de la tabla Customers a un archivo de Excel e importar esos datos a su tabla Customers.

Para importar/exportar datos:

  1. Haga clic derecho sobre la base de datos
  2. Ir a Tareas
  3. Ir a Importar datos o exportación de datos
  4. Cambiar el origen de datos Microsoft Excel
  5. siga el asistente
+1

¡Eso es genial! pero importarlo de nuevo es realmente doloroso ... – ppumkin

0

Si ambas bases de datos reside en la misma instancia de SQL Server, es decir, utilizar misma conexión, este SQL podría ser útil:

INSERT INTO [DestinationDB].[schema].[table] ([column]) 
SELECT [column] FROM [OriginDB].[schema].[table] 
GO 
+0

Esto no funcionó para mí. Fui con "select * into newtablename from oldtablename" como se muestra en este hilo (http://stackoverflow.com/questions/680552/table-level-backup) –

25

Uso bcp (desde la línea de comandos) a una archivo en red y luego restaurarlo.

p. Ej.

bcp "SELECT * FROM CustomerTable" queryout "c:\temp\CustomerTable.bcp" 
    -N -S SOURCESERVERNAME -T 

bcp TargetDatabaseTable in "c:\temp\CustomerTable.bcp" -N -S TARGETSERVERNAME -T 
  • -N utilización tipos nativos
  • -t utilizan la conexión de confianza
  • -S ServerName

Muy rápido y fácil de integrar en el código. (He construido una copia de seguridad de base de datos (restablecer) sistema en torno a este mismo comando.

+0

oh esto es perfecto. scriptable, flexible, bien soportado y muy rápido. ¡Gracias! – kenwarner

+0

Consulte también [esta respuesta] (http://dba.stackexchange.com/a/41044/30685) para obtener una secuencia de comandos que generará un archivo por lotes llamando a bcp para cada tabla. – wimh

+0

Esto funcionó muy bien para mí.Sin embargo, sugiero modificar el comando de importación con -E para manejar columnas de identidad y -q para citar identificadores. The -E se asegurará de que se inserten los valores de identidad correctos. –

76

Esta funcionalidad ya está integrado en SQL Server Management Studio 2008.

Sólo descargar the trial y sólo instalar las herramientas de cliente (que no deben caduque). Utilice Management Studio 2008 para conectarse a su base de datos 2005 (es compatible con versiones anteriores).

  1. Haga clic derecho en la base de datos
  2. Elija Tareas>generar scripts
  3. Presione A continuación, seleccione la base de datos de nuevo
  4. En la pantalla 'Elegir Script Opciones', hay una opción llamada Datos de secuencia de comandos que generarán instrucciones de inserción de SQL para todos sus datos.

(Nota: para SQL Server Management Studio 2008 R2, la opción se llama "Tipos de datos para script" y es la última en la sección General. Las opciones son "solo datos", "esquema y datos" ", y "solamente esquema")

alt text alt text

+3

excelente respuesta: gracias – Alan

+2

¿esta funcionalidad está disponible a través de la línea de comandos? – kenwarner

+0

¡Gracias por señalar el cambio de R2! Lo tengo para los demás: el esquema es el predeterminado, y se restablece a eso si cambias los objetos de destino. –

0

Me gustaría agregar algunas capturas de pantalla para Sql Server Management Studio 2008. Es correcto usar los pasos descritos anteriormente. Cuando tenga 'Generar y publicar script' -> 'Establecer opciones de script', presione Avanzar para ver las opciones de script:

! [Dónde encontrar las opciones de script avanzadas]: falta la imagen porque no tengo la reputación correcta: (

para SQL Server Management Studio 2008 incluye la opción de datos es 'Tipos de datos al script'

[Tipos de datos a la escritura]: falta imagen porque no tengo la reputación derecha :(

21

Puede consultar el siguiente artículo para ver cómo puede hacerlo utilizando tanto las herramientas nativas del Servidor SQL como la tercera p herramientas arty: SQL Server bulk copy and bulk import and export techniques

responsabilidad: yo trabajo para ApexSQL como ingeniero de soporte

Esperanza esto ayuda

Cuestiones relacionadas