Tengo una tabla ABC en una base de datos DB. Quiero crear copias de ABC con los nombres ABC_1, ABC_2, ABC_3 en la misma base de datos. ¿Cómo puedo hacer eso usando Management Studio (preferiblemente) o consultas SQL?
Esto es para SQL Server 2008 R2.
Tengo una tabla ABC en una base de datos DB. Quiero crear copias de ABC con los nombres ABC_1, ABC_2, ABC_3 en la misma base de datos. ¿Cómo puedo hacer eso usando Management Studio (preferiblemente) o consultas SQL?
Esto es para SQL Server 2008 R2.
Respuestas:
Utilizar SELECT ... INTO:
SELECT *
INTO ABC_1
FROM ABC;
Esto creará una nueva tabla ABC_1que tiene la misma estructura de columnas ABCy contiene los mismos datos. Sin embargo, las restricciones (por ejemplo, claves, valores predeterminados) no se copian.
Puede ejecutar esta consulta varias veces con un nombre de tabla diferente cada vez.
Si no necesita copiar los datos, solo para crear una nueva tabla vacía con la misma estructura de columna, agregue una WHEREcláusula con una expresión falsa:
SELECT *
INTO ABC_1
FROM ABC
WHERE 1 <> 1;
SELECT TOP(0) *más limpio que el WHEREmétodo de declaración siempre falsa
En SSMS, expanda su base de datos en el Explorador de objetos , vaya a Tablas , haga clic con el botón derecho en la tabla que le interese y seleccione Script Table As , Create To , New Query Editor Window . Haga una búsqueda y reemplace ( CTRL + H ) para cambiar el nombre de la tabla (es decir, coloque ABCen el campo Buscar qué y ABC_1en Reemplazar con luego haga clic en Aceptar ).
Las otras respuestas que muestran cómo hacer esto mediante SQL también funcionan bien, pero la diferencia con este método es que también obtendrá índices, restricciones y activadores.
Si desea incluir datos, después de crear esta tabla, ejecute el siguiente script para copiar todos los datos de ABC (manteniendo los mismos valores de ID si tiene un campo de identidad):
set identity_insert ABC_1 on
insert into ABC_1 (column1, column2) select column1, column2 from ABC
set identity_insert ABC_1 off
IDENTITY_INSERTen ON para permitir establecer la columna de identidad "manualmente", mezcló el orden en su ejemplo. Además, debe hacer una lista EXPLÍCITA de sus columnas
Si desea duplicar la tabla con todas sus restricciones y claves, siga los siguientes pasos:
Luego, para copiar los datos, ejecute este script a continuación:
SET IDENTITY_INSERT DuplicateTable ON
INSERT Into DuplicateTable ([Column1], [Column2], [Column3], [Column4],... )
SELECT [Column1], [Column2], [Column3], [Column4],... FROM MainTable
SET IDENTITY_INSERT DuplicateTable OFF
Primera opción
select *
into ABC_1
from ABC;
2da opción: use SSIS, es decir, haga clic con el botón derecho en la base de datos en el explorador de objetos> todas las tareas> exportar datos
Esta es otra opción:
select top 0 * into <new_table> from <original_table>