2011-11-27 25 views
16

Acabo de crear una base de datos vacía en mi máquina. Ahora deseo copiar una tabla de nuestra base de datos del servidor a esta base de datos local.Copie la tabla de una base de datos a otra

¿Qué comandos de sql necesito ejecutar para hacer esto? Deseo crear la nueva tabla, copiar datos de la tabla anterior e insertarla en la nueva tabla.

+1

Se puede crear una secuencia de comandos SQL INSERT. Consulte http://stackoverflow.com/questions/7515110/create-sql-insert-script-with-values-gathered-from-table – mhenry1384

Respuesta

24

Create a linked server al servidor de origen. La forma más fácil es hacer clic derecho en "Servidores vinculados" en Management Studio; está en Gestión -> Objetos del servidor.

A continuación, puede copiar la tabla utilizando un nombre de 4 partes, server.database.schema.table:

select * 
into DbName.dbo.NewTable 
from LinkedServer.DbName.dbo.OldTable 

Esto tanto crear la nueva tabla con la misma estructura que el original y copia los datos a través de.

+2

+1 solo responda teniendo en cuenta que esas bases de datos están en ** servidores ** diferentes. –

+0

No funcionará si está trabajando con SQL Server 2000 y 2012+ https://connect.microsoft.com/SQLServer/feedback/details/731869/using-sqlncli10-to-create-a-linked-server-to- sql-server-2000-causes-a-fault – sojim2

+0

Solución para SQL Server 2000 y 2012+ aquí (respuesta con el voto más alto, no la respuesta marcada): http://stackoverflow.com/questions/187770/copy-tables- from-one-database-to-another-in-sql-server – sojim2

6

SELECT ... INTO:

select * into <destination table> from <source table> 
6

Suponiendo que se encuentran en el mismo servidor, intente esto:

SELECT * 
INTO SecondDB.TableName 
FROM FirstDatabase.TableName 

Esto creará una nueva tabla y simplemente copiar los datos FirstDatabase.TableName-SecondDB.TableName y no va a crear claves o índices extranjeros.

1

La manera más rápida es usar una herramienta, como RazorSQL o Toad para hacer esto.

2

Suponiendo que desea nombres diferentes para las tablas.

Si está utilizando PHPmyadmin puede usar su opción de SQL en el menú. Luego, simplemente copie el código SQL de la primera tabla y péguelo en la nueva tabla.

Eso funcionó para mí cuando me mudaba de un host local a un servidor web. ¡Espero que te sirva!

+0

Para tablas muy grandes cuyos códigos SQL serían difíciles de copiar y pegar, los menús de ** Import ** y ** Export ** de PHPmyadmin se pueden usar fácilmente como bien. – tmnol

3
INSERT INTO ProductPurchaseOrderItems_bkp 
     (
     [OrderId], 
     [ProductId], 
     [Quantity], 
     [Price] 
    ) 
SELECT 
     [OrderId], 
     [ProductId], 
     [Quantity], 
     [Price] 
FROM ProductPurchaseOrderItems 
    WHERE OrderId=415 
1

Si necesita toda la estructura de la tabla (no sólo el diseño de los datos básicos), utilice Task>Script Table As>Create To>New Query Window y ejecutar en su nueva base de datos. Entonces puede copiar los datos en su tiempo libre.

4

Si se realiza una migración constante entre dos bases de datos, es posible insertar en una estructura de tabla ya existente. Si es así, entonces:

Utilice la siguiente sintaxis:

insert into DESTINATION_DB.dbo.destination_table 
select * 
    from SOURCE_DB.dbo.source_table 
[where x ...] 

Si la migración de un montón de tablas (tablas o con limitaciones claves foráneas) Me gustaría recomendar:

  • Scripts electrógenos con el Opción avanzada/Tipos de datos para secuencia de comandos: solo datos O
  • Resort que utiliza una herramienta de terceros.

Espero que ayude!

7

Otro método que se puede utilizar para copiar tablas de la base de datos de origen al de destino es el asistente de exportación e importación de SQL Server, que está disponible en SQL Server Management Studio.

Tiene la opción de exportar desde la base de datos de origen o importar desde el destino para transferir los datos.

Este método es una manera rápida de copiar tablas de la base de datos de origen a la de destino, si organiza copiar tablas que no tienen ninguna relación con las relaciones y pedidos de las tablas.

Al utilizar este método, los índices y las claves de las tablas no se transferirán. Si está interesado en copiarlo, debe generar scripts para estos objetos de base de datos.

Si se trata de claves externas, al conectar estas tablas, debe exportar los datos en el orden correcto; de lo contrario, el asistente de exportación fallará.

dude en leer más acerca de este método, así como sobre algunos métodos más (incluyendo generar secuencias de comandos, SELECT INTO y herramientas de terceros) en este artículo: https://www.sqlshack.com/how-to-copy-tables-from-one-database-to-another-in-sql-server/

Cuestiones relacionadas