viernes, 20 de enero de 2017

Crear valores predeterminados en SQL SERVER

Buenas tardes queridos lectores, el día de hoy hablaremos sobre los valores predeterminados en SQL SERVER.

Los valores predeterminados en SQL Server, nos permitirán crear un valor predeterminado en la columna de una tabla, en el caso que no se le ingrese valor, se puede crear con la sentencia DEFAULT, vista en este mismo curso algun tiempo atrás, sin embargo, a partir de la versión 2008 se pueden crear los valores independientemente a la tabla y asignarselos a la tabla y al campo mediante TRANSACT-SQL, así que pasemos a realizarlo que es lo que nos gusta
Para crear un valor predeterminado, crearemos una tabla de ejemplo:



create table usuario(
id int primary key,
nombre varchar(100),
tipo int)

A partir de esta tabla simple llamada usuario, vemos que tiene un campo que se llama tipo que es de tipo entero, asumiremos que el valor 0 es de un usuario dado de baja y el valor 1 es de un usuario activo, de manera que el valor predeterminado sea 1, todos los usuarios que creemos se crearan con un status activo, cuando queremos darlo de baja actualizaremos ese valor, vamos ahora a crear el valor predeterminado, para eso utilizaremos la sentencia CREATE DEFAULT, tal cual lo vemos en el siguiente ejemplo:



CREATE DEFAULT  usuarioactivo  
AS 1

Como ven, creamos un valor predeterminado llamado usuarioactivo, y le asignaremos el valor de 1, una vez que este creado ese valor predeterminado vamos a proceder a asociarlo a la tabla y a la columna que queremos, pero antes agregaremos un usuario, para que vean lo que hace si no esta predeterminado el valor.


insert into usuario (id, nombre) values (1,'Emmanuel')

Al seleccionar la tabla con el comando SELECT, nos encontraremos con lo siguiente:

id          nombre    tipo
1           Emmanuel  NULL

Como ven, el tipo aparece como NULL debido a que no le metimos un dato,  tampoco tiene dato personalizados, ahora bien, vamos ahora si a enlazar nuestro valor predeterminado a la columna y tabla, para eso utilizaremos el procedimiento almacenado de sistema llamado sp_bindefault:


sp_bindefault 'usuarioactivo', 'usuario.tipo'

Como ven, este procedimiento almacenado esta compuesto por dos parámetros, el primero se refiere al nombre del valor predeterminado, mientras que el segundo, hace referencia a la tabla (usuario) y al campo (tipo), al ejecutar esta instrucción, la base de datos nos confirma que el enlace se realizó correctamente

Valor predeterminado enlazado con la columna.

Ahora vamos a insertar nuevamente otro registro, para comprobar que el valor predeterminado esta funcionando correctamente:

insert into usuario (id, nombre) values (2,'Paula');

Al ejecutar esta instrucción y dar SELECT a la tabla, podemos apreciar como el valor predeterminado funciona correctamente:

Si queremos desvincular ese valor predeterminado de esa tabla y columna, ejecutaremos otro procedimiento almacenado de sistema que sería sp_unbindefault:

sp_unbindefault 'usuario.tipo'

En este caso, el procedimiento almacenado solo recibe un parámetro que es la tabla y el campo que queremos quitar.

Como ven, funciona correctamente, la herramienta de Managment Studio, nos permite también de manera gráfica observar los valores predeterminados que tenemos dados de alta, y se muestran aquí:

Valores predeterminados en SQL Server

 

Para eliminar el valor por defecto podremos borrarlo desde el Managment Studio, dando clic con el botón derecho del mouse y dando Eliminar, o podemos utilizar TRANSACT para realizarlo, y sería de la siguiente manera:


DROP DEFAULT  usuarioactivo   

Para podermo borrar, hay que señalar que tenemos que desvincular todas las columnas que estén vinculadas a el valor por defecto, ya que si existen columnas vinculadas, no se ´podrá borrar.

Hasta aquí el post queridos lectores, espero haya sido de su agrado y de su utilidad, recuerden que cualquier duda estoy a sus órdenes. No se olviden de comentar, preguntar, dar +1, o algún clic en algún anuncio, muchas gracias.

Banderas de Visitantes

Flag Counter