Listado completo de tutoriales
58 - Desasociar y eliminar valores predeterminados |
Un valor predeterminado no puede eliminarse si no se ha desasociado previamente.
Para deshacer una asociación empleamos el procedimiento almacenado "sp_unbindefault" seguido de la tabla y campo al que está asociado:
exec sp_unbindefault 'TABLA.CAMPO';
Quitamos la asociación al campo "sueldo" de la tabla "empleados":
exec sp_unbindefault 'empleados.sueldo';
Con la instrucción "drop default" podemos eliminar un valor predeterminado:
drop default NOMBREVALORPREDETERMINADO;
Eliminamos el valor predeterminado llamado "VP_cero":
drop default VP_cero;
Si eliminamos una tabla, las asociaciones de valores predeterminados de sus campos desaparecen, pero los valores predeterminados siguen existiendo.
Ingresemos el siguiente lote de comandos en el SQL Server Management Studio:
if object_id ('empleados') is not null drop table empleados; if object_id ('VP_cero') is not null drop default VP_cero; if object_id ('VP_datodesconocido') is not null drop default VP_datodesconocido; create table empleados( nombre varchar(30), domicilio varchar(30), barrio varchar(15), sueldo decimal(6,2) ); go -- Creamos un valor predeterminado que inserta el valor "0": create default VP_cero as 0; go -- Lo asociamos al campo "sueldo": exec sp_bindefault VP_cero, 'empleados.sueldo'; go -- Creamos un valor predeterminado con el valor "Desconocido": create default VP_datodesconocido as 'Desconocido'; go -- Lo asociamos al campo "domicilio" y al campo "barrio": exec sp_bindefault VP_datodesconocido, 'empleados.domicilio'; exec sp_bindefault VP_datodesconocido, 'empleados.barrio'; -- Veamos los valores predeterminados asociados a los campos de la tabla "empleados": exec sp_helpconstraint empleados; -- Quitamos la asociación al campo "barrio": exec sp_unbindefault 'empleados.barrio'; exec sp_helpconstraint empleados; exec sp_help; -- Aun no podemos eliminarlo porque está asociado al campo "domicilio", -- quitamos la asociación y luego lo eliminamos: exec sp_unbindefault 'empleados.domicilio'; drop default VP_datodesconocido;