Copie tablas de una base de datos a otra en SQL Server
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?
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.
¿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.
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.