una todas tablas tabla servidores servidor registros otro otra listar las insertar estructura diferentes datos copiar consultar sql sql-server copy migrate database-table

todas - insertar registros de una base de datos a otra en sql server



Copie tablas de una base de datos a otra en SQL Server (9)

  1. Haga un script de la create table en el estudio de administración, ejecute ese script en la barra para crear la tabla. (Haga clic derecho en la tabla en el explorador de objetos, la tabla de secuencias de comandos como, crear en ...)

  2. INSERT bar.[schema].table SELECT * FROM foo.[schema].table

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 base de datos de la base de datos foo ¿Cuál es la declaración SQL para hacer esto?


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

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

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


Copiar datos

INSERT INTO Alfestonline..url_details(url,[status],recycle) SELECT url,status,recycle FROM AlfestonlineOld..url_details


Esto debería funcionar:

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

No copiará constas, valores por defecto o índices. La tabla creada no tendrá un índice agrupado.

Alternativamente, usted podría:

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

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


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 las 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 recrear los índices y demás. Si las tablas existen, agregará los nuevos datos de manera predeterminada, pero puede ajustar eso (editar asignaciones) para eliminar todos los datos existentes.

Uso esto todo el tiempo y funciona bastante bien.


Puede ir con este camino: (un ejemplo general)

insert into QualityAssuranceDB.dbo.Customers (columnA, ColumnB) Select columnA, columnB from DeveloperDB.dbo.Customers

Además, si necesita generar los nombres de columna también para poner en la cláusula de inserción, use:

select (name + '','') as TableColumns from sys.columns where object_id = object_id(''YourTableName'')

Copie el resultado y péguelo en la ventana de consulta para representar los nombres de las columnas de su tabla e incluso esto excluirá la columna de identidad también:

select (name + '','') as TableColumns from sys.columns where object_id = object_id(''YourTableName'') and is_identity = 0

Recuerde que el script para copiar filas funcionará si las bases de datos pertenecen a la misma ubicación.

Puedes probar esto.

select * into <Destination_table> from <Servername>.<DatabaseName>.dbo.<sourceTable>

El nombre del servidor es opcional si ambos DB están en el mismo servidor.


Si existe una tabla y queremos copiar solo los datos, podemos intentar esta consulta.

inserte en Destination_Existing_Tbl select col1, col2 FROM Source_Tbl


Si solo hay una mesa, entonces todo lo que necesitas hacer es

  • Definición de tabla de script
  • Crear nueva tabla en otra base de datos
  • Actualizar reglas, índices, permisos y demás.
  • Importar datos (varios inserciones en ejemplos ya se muestran arriba)

Una cosa que tendrá que considerar es otras actualizaciones, como migrar otros objetos en el futuro. Tenga en cuenta que las tablas de origen y destino no tienen el mismo nombre. Esto significa que también tendrá que realizar cambios si depende de objetos tales como vistas, procedimientos almacenados y otros.

Con uno o varios objetos puede ir manualmente sin problemas. Sin embargo, cuando hay más de unas pocas actualizaciones, las herramientas de comparación de terceros son muy útiles. En este momento estoy usando ApexSQL Diff para las migraciones de esquemas, pero no puedes equivocarte con ninguna otra herramienta.


También puede usar el Asistente para generar scripts de SQL Server para ayudar a guiar la creación de scripts SQL que pueden hacer lo siguiente:

  • copiar el esquema de la tabla
  • cualquier restricción (identidad, valores por defecto, etc.)
  • datos dentro de la tabla
  • y muchas otras opciones si es necesario

Buen ejemplo de flujo de trabajo para SQL Server 2008 con capturas de pantalla que se muestran aquí .