Tengo dos tablas idénticas y necesito copiar las filas de una tabla a otra. ¿Cuál es la mejor manera de hacer eso? (Necesito copiar programáticamente solo unas pocas filas, no necesito usar la utilidad de copia masiva).Cómo copiar una fila de una tabla de SQL Server a otra
Respuesta
Mientras no hay columnas de identidad puede simplemente
INSERT Table2
SELECT * FROM Table1
WHERE [Conditions]
SELECT * INTO <new_table> FROM <existing_table> WHERE <clause>
¿Hay alguna manera de hacer esto Si estas dos tablas están en las bases de datos SQL-diff en el servidor. – Naresh
¡Claro! Califica completamente la base de datos. [nombre del servidor]. [esquema]. [tabla]. Por ejemplo 'SELECT * INTO [SQLTEST]. [Dbo]. [EMPLOYEES] FROM [SQLPROD]. [Dbo]. [EMPLOYEES]' –
Esto crea una nueva tabla, que no es lo que el OP está pidiendo. – Conrad
sintaxis alternativa:
INSERT tbl (Col1, Col2, ..., ColN)
SELECT Col1, Col2, ..., ColN
FROM Tbl2
WHERE ...
La consulta de selección puede (por supuesto) incluir expresiones, declaraciones de casos, constantes/literales, etc.
Esto es genial cuando las tablas difieren ligeramente. Tengo algunas columnas adicionales en mi segunda tabla y la respuesta aceptada no funciona con MSSQL, ya que deben ser idénticas. –
INSERT INTO DestTable
SELECT * FROM SourceTable
WHERE ...
funciona en SQL Server
Esto funciona solo cuando DestTable no existe. Obtendrá un error si se crea DestTable antes de esta consulta. –
En realidad falla si la tabla de destino no existe. Puede causar errores si el DestTable existente no está vacío. – Kaniu
La respuesta de Jarrett crea una nueva tabla.
La respuesta de Scott se inserta en una tabla existente con la misma estructura.
También puede insertar en una tabla con diferente estructura:
INSERT Table2
(columnX, columnY)
SELECT column1, column2 FROM Table1
WHERE [Conditions]
@ScottStonehouse: si reúne todas las otras respuestas en esta respuesta como lo ha hecho pero con el código (por lo que es exhaustivo), definitivamente se convertiría en la mejor respuesta. –
- 1. sql: cómo copiar de una tabla a otra tabla
- 2. copiar una columna de una tabla a otra
- 3. ¿Mover la fila de una tabla a otra?
- 4. Cómo copiar índices de una tabla a otra en SQL Server
- 5. php y mysql copiar registro de una tabla a otra
- 6. SQL Server copia todas las filas de una tabla a otra, es decir, una tabla duplicada
- 7. Cómo copiar una fila de CUALQUIER tabla cambiando una columna
- 8. SQL Server creando una tabla temporal desde otra tabla
- 9. Cómo agregar una fila para todas las filas en otra tabla en SQL Server
- 10. Copiar datos de Oracle a otra tabla
- 11. En SQL, ¿cómo eliminar una fila de una tabla si no tiene una fila correspondiente en otra tabla?
- 12. Copiar datos de una tabla en una base de datos a otra base de datos separada
- 13. SQL máximo fila de una tabla
- 14. Cómo copiar el valor de la columna de texto de una fila a otra fila en mySQL
- 15. Mover una tabla de una base de datos a otra base de datos SQL Server
- 16. ¿Copiar una clase a otra?
- 17. Cómo copiar una fila insertada, actualizada y eliminada en un disparador de SQL Server
- 18. copia una sola fila de una tabla de datos a otra
- 19. Esta fila ya pertenece a otra tabla
- 20. Cómo copiar datos de una base de datos/tabla a otra base de datos/tabla
- 21. Mover datos SQL de una tabla a otra
- 22. Cómo copiar una tabla de una base de datos mysql a otra base de datos mysql
- 23. ¿Cómo copiar datos de una tabla a otra tabla nueva en MySQL?
- 24. fila 'actual' a una función en SQL Server
- 25. Restando una fila de datos de otra en SQL
- 26. SQL actualiza una columna de otra columna en otra tabla
- 27. Selección de columna calculada por SQL Server de otra tabla
- 28. Copie la tabla de una base de datos a otra
- 29. SQL - Actualizar una tabla con un campo de otra tabla
- 30. MYSQL: ¿Cómo copiar una fila completa de una tabla a otra en mysql con la segunda tabla con una columna adicional?
Tenga cuidado con esta sintaxis, ya que no funcionará si Table2 tiene una columna de identidad y se romperá en el futuro si Table1 cambia alguna vez sin que Table2 cambie en sincronización (me quemó antes). Esta solución puede ser perfecta para su caso, solo tenga en cuenta estas consideraciones. –
Puede usar 'SET IDENTITY_INSERT < table > ON' (y' SET IDENTITY_INSERT < table > OFF') para deshabilitar temporalmente la columna de identidad en la tabla en la que está intentando insertar. Trabajé para mí tratando de restaurar algunos registros faltantes en el medio del conjunto de datos. – nickb
¿qué ocurre si la clave principal en la tabla 1 existe en la tabla 2 como clave externa? Tengo la misma cosa, y no sé qué hacer ... en table2 id the foreign-key AS "Technology_idTechnology" y en la tabla 1, está allí como "idTechnology" Quiero copiar todas las entradas de table1 a table2, cuando la idTechnology coincide en ambas tablas ... – ZelelB