¿Cómo crear una nueva tabla con las mismas restricciones e índices?

8

Estoy creando una nueva tabla con restricciones de clave principal y un índice no agrupado en esa tabla.

Lo sé, me gustaría crear otra tabla con la misma estructura y valores, así como claves e índices también.

create table Dummy (id integer ,name varchar(20),salary integer
Constraint PK_Con_id primary key(id))

insert into Dummy values(11,'AAA',1000);
insert into Dummy values(12,'BBB',2000);
insert into Dummy values(13,'CCC',3000);
insert into Dummy values(14,'DDD',4000);

select * from Dummy;

create nonclustered index IX_Name 
on Dummy(Name)

Ahora estoy creando una Dmytabla, pero las claves y restricciones no se reflejan en la Dmytabla en SQL Server 2008 R2.

SELECT * 
INTO Dmy 
FROM Dummy
Vinoth _S
fuente

Respuestas:

14

SELECT INTO no va a hacer esto por usted, porque si bien mantiene los nombres de columna y los tipos de datos, no conserva muchos otros aspectos de la tabla, como restricciones, índices, etc. Lo único que realmente La propiedad IDENTITY se mantiene fuera de las columnas si una de las columnas la tiene.

Haga clic con el botón derecho en la tabla original en Object Explorer y seleccione Script Table As> Create To> New Query Window. Debería tener un script CREATE TABLE para la tabla original, incluidas todas las restricciones, etc. Tenga en cuenta que es posible que deba establecer algunas de estas configuraciones (Herramientas> Opciones> Explorador de objetos de SQL Server> Scripting) en true para obtener todas los atributos de la tabla que desea, por lo que esto puede requerir un poco de prueba y error:

opciones en Herramientas> Opciones> Explorador de objetos de SQL Server> Scripting

Ahora, solo modifique manualmente esa secuencia de comandos para especificar el nuevo nombre de la tabla, y asegúrese de ajustar todas las restricciones y los nombres de índice para que sean únicos (la cantidad de trabajo dependerá de si tiene una convención de nomenclatura establecida o si solo tomas lo que SQL Server te arrojará).

Aaron Bertrand
fuente
5

Todo se puede hacer en SQL Server Management Studio.

La opción Tabla de script como genera código de creación para claves y restricciones primarias y externas. No crea script para los índices, por lo que debe hacerlo en otro paso. tipo, sugiero expandir todos los nodos de tipo de objeto en SSMS Object Explorer.

ingrese la descripción de la imagen aquí

Para crear un script para la estructura de la tabla, claves primarias y externas, y restricciones

  1. Ejecute SQL Server Management Studio
  2. En el Explorador de objetos , expanda Bases de datos
  3. Expandir tablas
  4. Haga clic derecho en la tabla y seleccione Tabla de secuencias de comandos como | CREAR PARA | Nueva ventana del editor de consultas

ingrese la descripción de la imagen aquí

El script generado se mostrará en la pestaña Editor de consultas. Asegúrese de cambiar la tabla, la clave primaria y externa y los nombres de restricción, ya que estos nombres deben ser únicos.

De lo contrario, recibirá un mensaje de error que dice algo como "Ya hay un objeto llamado" Dirección "en la base de datos". , o 'La operación falló porque ya existe un índice o estadísticas con el nombre' AK_Address_rowguid 'en la tabla' Person.Address '.'

Para crear un script para un índice

Use los pasos similares a los anteriores:

ingrese la descripción de la imagen aquí

Para crear un script INSERT INTO para datos

  1. Haga clic derecho en la base de datos (¡no en la tabla!)
  2. Tareas Abiertas | Generar guiones
  3. En la pestaña Elegir objetos , seleccione la tabla para la secuencia de comandos

ingrese la descripción de la imagen aquí

4.En la pestaña Establecer opción de secuencia de comandos , haga clic en Avanzado y asegúrese de que la opción Tipos de datos para secuencia de comandos esté configurada solo en Datos

Nota: Si selecciona Esquema y datos, el script de esquema generado será idéntico al script generado en el primer método en esta respuesta.

ingrese la descripción de la imagen aquí

5. Actualice el nombre de la tabla al nombre de la nueva tabla antes de ejecutar el script

Milena Petrovic
fuente
1

Esquema FOR : tabla, restricciones y claves

  • En el Explorador de objetos, selecciona TABLA (por ejemplo, ABC)> Haz clic derecho sobre ella
  • Luego seleccione Tabla de guiones como> CREAR EN> Nueva ventana del editor de consultas
  • La tabla Crear script para ABC se abrirá
  • Cambiar nombre de tabla
  • Cambiar PK
  • Cambiar nombre de restricción
  • Cambiar nombre de índice
  • Ahora ejecute este script, la tabla se creará con la misma estructura pero con un nombre diferente ...

Índice FOR

  • Seleccione Tabla ABC> Expandir
  • Seleccione ÍNDICE> Haga clic derecho en el ÍNDICE NO AGRUPADO
  • Índice de secuencia de comandos AS> Crear para> Nueva ventana del editor de consultas
  • Cambiar nombre de índice
  • Ejecute en la tabla recién creada para crear ÍNDICE en ella .....

Para los datos

  • Seleccionar nombre de base de datos
  • Haga clic derecho sobre él
  • Seleccione Tarea> Generar guiones ...
  • Se abrirá una nueva ventana.
  • Seleccione Siguiente
  • Ahora seleccione objetos de base de datos específicos y seleccione tabla ABC
  • Seleccione Siguiente
  • Ir por adelantado>
  • Hacer escribir datos en el script como DATOS SOLO
  • Luego OK> Siguiente> Siguiente> Finalizar ....
  • Ahora ejecute este script en la tabla recién creada
dsingh
fuente