53 - Eliminar restricciones (alter table - drop)


Primer problema:
Una playa de estacionamiento almacena cada día los datos de los vehículos que ingresan en la tabla 
llamada "vehiculos".
1- Elimine la tabla, si existe:
 if object_id('vehiculos') is not null
  drop table vehiculos;

2- Cree la tabla:
 create table vehiculos(
  patente char(6) not null,
  tipo char(1),--'a'=auto, 'm'=moto
  horallegada datetime not null,
  horasalida datetime
 );

3- Establezca una restricción "check" que admita solamente los valores "a" y "m" para el campo 
"tipo":
 alter table vehiculos
 add constraint CK_vehiculos_tipo
 check (tipo in ('a','m'));

4- Establezca una restricción "default" para el campo "tipo" que almacene el valor "a" en caso de no 
ingresarse valor para dicho campo:
 alter table vehiculos
  add constraint DF_vehiculos_tipo
  default 'a'
  for tipo;

5- Establezca una restricción "check" para el campo "patente" para que acepte 3 letras seguidas de 3 
dígitos:
 alter table vehiculos
 add constraint CK_vehiculos_patente_patron
 check (patente like '[A-Z][A-Z][A-Z][0-9][0-9][0-9]');

6- Agregue una restricción "primary key" que incluya los campos "patente" y "horallegada":
 alter table vehiculos
 add constraint PK_vehiculos_patentellegada
 primary key(patente,horallegada);

7- Ingrese un vehículo:
 insert into vehiculos values('SDR456','a','2005/10/10 10:10',null);

8- Intente ingresar un registro repitiendo la clave primaria:
 insert into vehiculos values('SDR456','m','2005/10/10 10:10',null);
No se permite.

9- Ingrese un registro repitiendo la patente pero no la hora de llegada:
 insert into vehiculos values('SDR456','m','2005/10/10 12:10',null);

10- Ingrese un registro repitiendo la hora de llegada pero no la patente:
 insert into vehiculos values('SDR111','m','2005/10/10 10:10',null);

11- Vea todas las restricciones para la tabla "vehiculos":
 exec sp_helpconstraint vehiculos;
aparecen 4 filas, 2 correspondientes a restricciones "check", 1 a "default" y 1 a "primary key".

12- Elimine la restricción "default" del campo "tipo".

13- Vea si se ha eliminado:
 exec sp_helpconstraint vehiculos;

14- Elimine la restricción "primary key" y "check".

15- Vea si se han eliminado:
 exec sp_helpconstraint vehiculos;
Ver solución

 if object_id('vehiculos') is not null
  drop table vehiculos;

 create table vehiculos(
  patente char(6) not null,
  tipo char(1),--'a'=auto, 'm'=moto
  horallegada datetime not null,
  horasalida datetime
 );

 alter table vehiculos
 add constraint CK_vehiculos_tipo
 check (tipo in ('a','m'));

 alter table vehiculos
  add constraint DF_vehiculos_tipo
  default 'a'
  for tipo;

 alter table vehiculos
  add constraint CK_vehiculos_patente_patron
  check (patente like '[A-Z][A-Z][A-Z][0-9][0-9][0-9]');

 alter table vehiculos
  add constraint PK_vehiculos_patentellegada
  primary key(patente,horallegada);

 insert into vehiculos values('SDR456','a','2005/10/10 10:10',null);

 insert into vehiculos values('SDR456','m','2005/10/10 10:10',null);

 insert into vehiculos values('SDR456','m','2005/10/10 12:10',null);

 insert into vehiculos values('SDR111','m','2005/10/10 10:10',null);

 exec sp_helpconstraint vehiculos;

 alter table vehiculos
  drop DF_vehiculos_tipo;

 exec sp_helpconstraint vehiculos;

 alter table vehiculos
  drop PK_vehiculos_patentellegada, CK_vehiculos_tipo;

 exec sp_helpconstraint vehiculos;



 

Retornar