Copie tablas de una base de datos a otra en SQL Server

Resuelto RyanKeeter asked hace 16 años • 8 respuestas

Tengo una base de datos llamada foo y una base de datos llamada bar. Tengo una tabla en foo llamada tblFoobar que quiero mover (datos y todo) a la barra de la base de datos desde la base de datos foo. ¿Cuál es la declaración SQL para hacer esto?

RyanKeeter avatar Oct 09 '08 22:10 RyanKeeter
Aceptado

La tarea "Importar datos" de SQL Server Management Studio (haga clic con el botón derecho en el nombre de la base de datos y luego en tareas) hará la mayor parte de esto por usted. Ejecútelo desde la base de datos en la que desea copiar los datos.

Si las tablas no existen, las creará por usted, pero probablemente tendrá que volver a crear los índices y demás. Si las tablas existen, agregará los nuevos datos de forma predeterminada, pero puede ajustarlos (editar asignaciones) para que elimine todos los datos existentes.

Lo uso todo el tiempo y funciona bastante bien.

David avatar Oct 09 '2008 15:10 David

¿En el servidor SQL? ¿Y en el mismo servidor de base de datos? Utilice nombres de tres partes.

INSERT INTO bar..tblFoobar( *fieldlist* )
SELECT *fieldlist* FROM foo..tblFoobar

Esto simplemente mueve los datos. Si desea mover la definición de la tabla (y otros atributos como permisos e índices), tendrá que hacer algo más.

Amy B avatar Oct 09 '2008 15:10 Amy B

Esto debería funcionar:

SELECT * 
INTO DestinationDB..MyDestinationTable 
FROM SourceDB..MySourceTable 

No copiará restricciones, valores predeterminados ni índices. La tabla creada no tendrá un índice agrupado.

Alternativamente podrías:

INSERT INTO DestinationDB..MyDestinationTable 
SELECT * FROM SourceDB..MySourceTable

Si su tabla de destino existe y está vacía.

leoinfo avatar Oct 09 '2008 15:10 leoinfo