2010-07-13 8 views

Respuesta

38

Haga clic con el botón derecho en SQL Management Studio.

Seleccionar secuencia de comandos ... Crear para ... Nueva ventana de consulta.

Esto generará una secuencia de comandos para volver a crear la tabla en una nueva ventana de consulta.

Cambie el nombre de la tabla en la secuencia de comandos a lo que desee que se nombre la nueva tabla.

Ejecute la secuencia de comandos.

+2

Ridículo, incluso en 2012! Gracias Avalanchis! – Bojangles

22
SELECT * 
INTO target 
FROM source 
WHERE 1 = 2 
+6

Esto solo capturará parte de la estructura. Los mismos nombres de columna, tipos de datos y configuraciones que aceptan valores de null. Pero todo lo demás quedará atrás. En la parte superior de mi cabeza, lo que quede incluirá las restricciones PK, UK, FK y Check, los atributos de identidad y las columnas calculadas. Depende de qué parte de la estructura OP desee si esto satisface las necesidades de OP. –

+0

donde cláusula es opcional. – Dhinakar

+0

¿Por qué '1 = 2'? ¿No será esto falso siempre? –

-2

Mi SQL Server Management Studio me sigue preguntando cómo puedo hacerlo mejor, ¡tengo una idea! La capacidad de resaltar una tabla y luego, ctrl C, ctrl V! sería genial y la respuesta a esta pregunta al mismo tiempo!

+0

¿Estás respondiendo inventando una nueva función y diciendo que resolvería el problema? – Yunnosch

1

Para crear una nueva tabla de tabla existente

SELECT * EN new_table DE OLD_TABLE

para insertar datos de una tabla de otra tabla

Insertar en Table_Name2 seleccione la parte superior 1 * desde Table_Name1

+0

Bienvenido a StackOverflow y gracias por intentar ayudar. Por favor explique el punto principal de sus respuestas, el código solo no es tan útil. Particularmente, hay una respuesta diferente que es casi idéntica a la tuya. Simplemente evita copiar el contenido. No hacer los valores de copia parece ser parte del comportamiento OP deseado. ¿Puedes explicar tus razones? – Yunnosch

2

Aquí, le mostraré 2 implementaciones diferentes:

Primero :

Si sólo necesita crear una tabla duplicada a continuación, sólo ejecute el comando:

SELECT top 0 * INTO [dbo].[DuplicateTable] 
FROM [dbo].[MainTable] 

Por supuesto, esto no funciona completamente. las restricciones no se copian, ni las claves principales ni los valores predeterminados. El comando solo crea una nueva tabla con la misma estructura de columna y si desea insertar datos en la nueva tabla.

Segundo (recomendado):

Pero Si desea duplicar la tabla con todas sus limitaciones sigue & claves de esta pasos siguientes:

  1. Abra la base de datos en SQL Server Management Studio.
  2. Haga clic con el botón derecho en la tabla que desea duplicar.
  3. Seleccione la tabla de scripts como -> Crear en -> Nueva ventana del editor de consultas. Esto generará un script para recrear la tabla en una nueva ventana de consulta.
  4. Cambie el nombre de la tabla y las claves relativas & restricciones en el script.
  5. Ejecute la secuencia de comandos.
0
SELECT * INTO newtable FROM oldtable where 1=2 


    where 1=2, this statement is use when only Copy complete structure of a 
    table in sql without Copying data of table 

SELECT * INTO newtable FROM oldtable 
create table with data you can use this statement 
Cuestiones relacionadas