lunes, 17 de marzo de 2014

Reiniciar un Campo Identity en SQL SERVER

Siempre que se crea una tabla en una base de datos, generalmente se crea un llave primaria que es un numero que se autoincrementa, pero cuando empezamos a trabajar y hacemos pruebas en ocasiones deseamos que el número inicie nuevamente el recuento. Para esas ocasiones es necesario reiniciar el contador a cero y que el proximo registro asigne automaticamente 1. 

Para realizarlo en SQL Server la sintaxis es la siguiente:

DBCC CHECKIDENT(<nombre_tabla>,RESEED,0)

Esta función recibe como parámetro el nombre de la tabla a reiniciar, se deja RESEED para reiniciar el autonumérico y finalmente el número que se asigna como 0 para el caso de reiniciar el siguiente numero a agregar automaticamente se el 1.

Cambiar el tipo de dato de un campo SQL Server

Para cambiar el tipo de dato de un campo de una tabla en SQL Server la siguiente sintaxis resumida nos sirve:

ALTER TABLE [NOMBRE_TABLA]
          ALTER COLUMN NOMBRE_CAMPO TIPO_DATO;

Un ejemplo podria ser el siguiente:

 ALTER TABLE [Subscritos]
  ALTER COLUMN Activo bit;

Crear una tabla en SQL Azure

Para crear una tabla en SQL Azure les muestro la siguiente función:

CREATE TABLE Subscritos
(
IdCorreo INT IDENTITY(1,1) NOT NULL,
Correo VARCHAR(20) NULL ,
Activo VARCHAR(30) NULL ,
CONSTRAINT [PK_Subscritos] PRIMARY KEY CLUSTERED
(
[IdCorreo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
GO

Creamos una tabla con 3 campos, el primero IdCorreo lo declaramos entero INT, le indicamos se va autoincrementar con IDENTITY(1,1) que usa 1 como inicial y 1 como el incremento a realizar. Despues vienen dos campos VARCHAR que son Correo y Activo de 20 y 30 de longitud respectivamente. La ultima instrucción nos indica que IdCorreo será la llave primera de esta tabla.

Como crear un tabla en SQL Server

Si queremos crear un tabla en SQL Server con los siguiente datos

Persona
--------
Id  <----- siendo este campo la llave principal
Nombre
Apellidos
Genero
FechaNacimiento

la sintaxis seria la siguiente:

CREATE TABLE Persona
     ( 
        Id                     INT              NOT NULL  , 
        Nombre                 VARCHAR(20)          NULL  , 
        Apellidos              VARCHAR(30)          NULL  ,         
        Genero                 VARCHAR(1)           NULL  , 
        FechaNacimiento        DATETIME             NULL  ,  
        CONSTRAINT PK_Person PRIMARY KEY CLUSTERED (Id ASC) 
        ON [PRIMARY] 
     )
GO