sábado, 20 de junio de 2015

Sql Server 2014.Crear una tabla


Hace un tiempo hice una entrada sobre cómo crear una tabla en SQL Server 2005, ahora presento lo mismo pero para SQL server 2014. La operativa apenas ha variado por lo que no me voy  a extender con las pantallas. En esta ocasión además incluyo un pequeño script para que crear una foreing key de un campo de la nueva tabla a otra ya creada.
Sobre la base de datos desde la que deseamos crear la tabla pulsamos botón derecho del ratón -> Nuevo y Tabla.

Crear una tabla SQL Server 2014




Esto nos mostrará una plantilla donde rellenar los nombres de las columnas, sus tipos y si permiten valores nulos o no.

añadir campos a una nueva tabla SQL Server 2014


La explicación de cómo crear primary key es igual que la que ya puse para SQL Server 2005.  
Cuando deseemos terminar pulsamos a guardar, esto nos muestra otra pantalla donde elegimos el nombre de la tabla creada

Nombrar una nueva tabla en SQL server 2014

Hecho esto nuestra tabla aparecerá creada por defecto en nuestra base de datos con el propietario dbo por defecto

Nueva tabla en SQL Server 2014


La nueva tabla aparecerá con las características especificadas. Si queremos generarla por código podemos ejecutar el siguiente script:

USE [dbBASE_DE_DATOS]
GO

 /****** Object:  Table [PROPIETARIO].[tbTrazaEnvios]    Script Date: 29/05/2015 12:54:36 ******/

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [PROPIETARIO].[tbNombreTabla](

     [id] [bigint] NOT NULL,

     [strCodigo] [nvarchar](50) NULL,

     [strDescripcion] [nvarchar](max) NULL,

     [datFecha] [datetime] NOT NULL

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

Una forma muy sencilla de crear el script es sobre una tabla ya creada botón derecho del ratón Incluir tabla como -> CREATE to -> Nueva ventana del Editor de Consultas.

script para nueva tabla SQL server 2014


Si queremos cambiar el propietario ahora podemos hacerlo en el script.

CREATE TABLE [PROPIETARIO].[tbNombreTabla]

Si deseamos añadir campos clave y una foreing kay a otra tabla haremos un script de este estilo

USE [dbBASE_DATOS]
GO

/****** Object:  Table [PROPIETARIO].[tbNombreTabla]    Script Date: 29/05/2015 13:01:50 ******/

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [PROPIETARIO].[tbNombreTabla](

     [idTraza] [bigint] NOT NULL,

     [strCodigo] [nvarchar](50) NOT NULL,

     [strDescripcion] [nvarchar](max) NULL,

     [datFecha] [datetime] NOT NULL,

 CONSTRAINT [pk_tbNombreTabla] PRIMARY KEY CLUSTERED
(

     [id] ASC,

     [strCodigo] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [PROPIETARIO].[ tbNombreTabla ]  WITH CHECK ADD  CONSTRAINT [fk_strCodigo] FOREIGN KEY([strCodigo])

REFERENCES [[PROPIETARIO].[tbTablaEnlazada] ([strCodigoEnlazado])
GO

Si queremos que la primera columna se rellene automáticamente de forma secuencial al final de la definición de la columna ponemos IDENTITY(1,1), esto comenzará a contar desde 1 incrementando 1 en cada registro.

[id] [bigint] IDENTITY(1,1) NOT NULL,

Si deseamos generar un script que ya tenga en cuenta si existe la tabla a crear, añadimos la siguiente validación.

IF NOT EXISTS  (SELECT *  from sysobjects where id = object_id('PROPIETARIO.tbNombreTabla')

            and sysstat & 0xf=3 )

            BEGIN

                        CREATE TABLE [PROPIETARIO].[tbNombreTabla](

            [id] [bigint] IDENTITY(1,1) NOT NULL,

            [strCodigo] [nvarchar](50) NOT NULL,

            [strDescripcion] [nvarchar](max) NULL,

            [datFecha] [datetime] NOT NULL,

            CONSTRAINT [pk_ tbNombreTabla] PRIMARY KEY CLUSTERED
(
            [id] ASC,

            [strCodigo] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

END
GO

No hay comentarios:

Publicar un comentario