sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo crear una tabla en SQL Server usando una consulta

Para crear una tabla en SQL Server usando una consulta:

  1. En SQL Server Management Studio, haga clic en Nueva consulta botón en la barra de herramientas
  2. Escriba o pegue un CREATE TABLE guión (ejemplo a continuación)
  3. ¡Haga clic en ! Ejecutar botón en la barra de herramientas

He aquí un ejemplo:

La secuencia de comandos CREAR TABLA

Aquí está el script SQL en el ejemplo anterior:

CREATE TABLE Status(
StatusId int IDENTITY(1,1) NOT NULL,
StatusName varchar(50) NOT NULL,
DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated DEFAULT (getdate()),
CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId)
)

El script hace lo siguiente:

  • crea una tabla
  • añade 3 columnas
  • establece su tipo de datos
  • especifica que StatusId es una columna de identidad y que el valor del primer registro será 1, y que el valor de cada registro subsiguiente aumentará en 1
  • especifica que cualquier valor en la columna StatusName puede tener una longitud máxima de 50
  • especifica que los valores NULL no están permitidos
  • establece un valor predeterminado de la fecha actual para la columna DateCreated
  • establece el campo StatusId como clave principal

Este es un script básico que solo crea una tabla pequeña. Podría ejecutar fácilmente un script que cree una base de datos completa, con todos sus objetos, datos y permisos, todo de una sola vez.

Mejorando el guión

Al crear objetos de base de datos, es una buena práctica verificar si el objeto ya existe o no. Esto evita que se produzcan errores cuando el script intenta crear una tabla que ya está en la base de datos.

Ejecutar solo si la tabla aún no existe

La siguiente línea podría agregarse al script anterior, de modo que el script CREATE TABLE solo se ejecute si la tabla aún no existe en la base de datos (o una tabla con el mismo nombre):

IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U')

Entonces todo el script se convertiría en:

IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U')
CREATE TABLE Status(
StatusId int IDENTITY(1,1) NOT NULL,
StatusName varchar(50) NOT NULL,
DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated DEFAULT (getdate()),
CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId)
)

Reemplace la tabla si ya existe

El script también podría reescribirse para reemplazar la tabla si ya existe. Esto se puede hacer primero, eliminando la tabla existente y luego creando una nueva.

Servidor SQL 2016

SQL Server 2016 introdujo la cláusula DROP IF EXISTS. Entonces, en SQL Server 2016, podemos agregar lo siguiente en la parte superior del script:

DROP TABLE IF EXISTS [TaskTracker].[Status]

(TaskTracker es el nombre de la base de datos. Estado es el nombre de la tabla).

DROP TABLE IF EXISTS [TaskTracker].[Status]
CREATE TABLE Status(
StatusId int IDENTITY(1,1) NOT NULL,
StatusName varchar(50) NOT NULL,
DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated DEFAULT (getdate()),
CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId)
)

SQL Server 2014 y anteriores

Si usa una versión anterior de SQL Server, puede usar lo siguiente para eliminar la tabla existente:

IF EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U')
DROP TABLE Status

Entonces todo el script se convertiría en:

IF EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U')
DROP TABLE Status
CREATE TABLE Status(
StatusId int IDENTITY(1,1) NOT NULL,
StatusName varchar(50) NOT NULL,
DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated DEFAULT (getdate()),
CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId)
)

Generar un script a partir de una tabla existente

Puede generar un script SQL a partir de una tabla existente a través del Explorador de objetos en la GUI de SSMS. Cuando hace esto, SQL Server genera todo el código SQL de la tabla y crea el script.

Para hacer esto, simplemente haga clic con el botón derecho en la tabla y seleccione Guardar tabla como... luego sigue las indicaciones.

Esto no se limita solo a las tablas:puede crear scripts para cualquier objeto de la base de datos utilizando el mismo método.

Si es nuevo en la creación de secuencias de comandos SQL, puede intentar crear una tabla mediante la GUI y luego generar la secuencia de comandos SQL a partir de la tabla.