• Saltar a la navegación principal
  • Saltar al contenido principal

DBA dixit

Recursos en línea para el administrador y el desarrollador de bases de datos

  • Lo básico
  • SQL
  • Administración
  • Herramientas
  • Buenas prácticas
  • Performance & Tuning
Usted está aquí: Inicio / SQL / Valores por default en SQL Server (CREATE TABLE y ALTER TABLE)

Valores por default en SQL Server (CREATE TABLE y ALTER TABLE)

01/09/2020 by DBA

Valores por default en SQL Server (CREATE TABLE y ALTER TABLE)

Un valor por default -o por omisión- es aquel valor que se le dará a un campo si al momento de insertar su registro no se le da un valor específico.

Suponiendo que existe un campo Sexo (de 1 caracter con valores posibles ‘M’ y ‘F’) se podría definir el campo conun valor por default de ‘F’ si se trata de un campo en una tabla de pacientes de un ginecólogo, es decir, la gran mayoría (si no es que todos) los registros en la tabla de pacientes serán de mujeres. Por el contrario, el mismo campo en una tabla de clientes de una tienda de abarrotes quizá no requiera un valor por default en caso de que no haya mayoría de clientes de un sexo sobre el otro.

Otro ejemplo sería que se trate de un alumno en una escuela, quizá se quiera poner en su estatus que está inscrito. Ya después se podrá cambiar a Dado de baja, Suspendido, etc., pero en un inicio, todo alumno entra como alumno inscrito (no tendría sentido dar de alta un alumno y suspenderlo en ese mismo momento).

El valor por default de un campo tiene que ser del mismo tipo de dato que el campo. Esto quiere decir que si un campo en numérico, entonces el valor por default tiene que es un número; y si el campo es de tipo fecha, el valor por default tiene que ser de este mismo tipo de dato.

Ejemplo de valores por default en CREATE TABLE

CREATE TABLE peliculas 
(
    clave smallint PRIMARY KEY,     --LLave primaria
    titulo varchar(100) NOT NULL,   --No permite valores nulos
    director varchar (100) NULL,    --Si permite valores nulos
    genero varchar(100) NULL,       --Si permite valores nulos
    anoEstreno   smallint DEFAULT 2000 NULL CHECK (anoEstreno > 1900), --Si permite valores nulos, por default es 2000 y solo permite valores mayores a 1900
    anoGrabacion smallint NULL,     --Si permite valores nulos
    anoEdicion   smallint NULL,     --Si permite valores nulos
    clasificacion varchar(20) NULL DEFAULT 'A', --Si permite valores nulos y el default es 'A'
    protagonistas varchar (300) NULL DEFAULT '',--Si permite valores nulos y el default es una cadena vacía

CONSTRAINT unique_tituloUnico UNIQUE (titulo,anoEstreno)

);

En el ejemplo anterior, los campos anoEstreno, clasificacion y protagonistas tendrán un valor por default si al dar de alta el registro en la tabla peliculas no se asigna un valor explícito para esos campos. En el caso de anoEstreno el valor será de 2000, en clasificacion será una letra A y en protagonistas tendrá una cadena vacío (que es diferente a un valor nulo).

Como se ve en el ejemplo, se pueden combinar otras restricciones (NULL y CHECK por ejemplo) junto con DEFAULT. Un ejemplo se puede ver adelante:

 

En este caso, a pesar de que no se proporciona valores para anoEstreno y para clasificacion, después de ejecutar un INSERT, estos dos campos tienen los valores por default (2000 y ‘A’ respectivamente).

Cambio de valor por default con ALTER TABLE

En el caso de que ya exista la tabla, es posible cambiar un valor por default con el comando ALTER TABLE. Esto se realiza de la siguiente manera:

ALTER TABLE nombredetabla ADD DEFAULT valorpordefault FOR nombredecampo;

En el caso de la tabla anterior, se podría añadir un valor por default en el campo de anoGrabacion de 2001 con el siguiente comando ALTER TABLE

ALTER TABLE peliculas ADD DEFAULT 2001 FOR anoGrabacion;

Publicado en: SQL Etiquetado como: ALTER TABLE, CREATE TABLE, SQL Server

  • Lo básico
  • SQL
  • Administración
  • Herramientas
  • Buenas prácticas
  • Performance & Tuning

Copyright © 2023 · Wellness Pro on Genesis Framework · WordPress · Acceder