47 - Restricción default |
Un comercio que tiene un stand en una feria registra en una tabla llamada "visitantes" algunos datos de las personas que visitan o compran en su stand para luego enviarle publicidad de sus productos. 1- Elimine la tabla "visitantes", si existe: if object_id('visitantes') is not null drop table visitantes; 2- Cree la tabla con la siguiente estructura: create table visitantes( numero int identity, nombre varchar(30), edad tinyint, domicilio varchar(30), ciudad varchar(20), montocompra decimal (6,2) not null ); 3- Defina una restricción "default" para el campo "ciudad" que almacene el valor "Cordoba" en caso de no ingresar valor para dicho campo: alter table visitantes add constraint DF_visitantes_ciudad default 'Cordoba' for ciudad; 4- Defina una restricción "default" para el campo "montocompra" que almacene el valor "0" en caso de no ingresar valor para dicho campo: alter table visitantes add constraint DF_visitantes_montocompra default 0 for montocompra; 5- Ingrese algunos registros sin valor para los campos con restricción "default": insert into visitantes values ('Susana Molina',35,'Colon 123',default,59.80); insert into visitantes (nombre,edad,domicilio) values ('Marcos Torres',29,'Carlos Paz'); insert into visitantes values ('Mariana Juarez',45,'Carlos Paz',null,23.90); 6- Vea cómo se almacenaron los registros: select * from visitantes; 7- Vea las restricciones creadas anteriormente. aparecen dos filas, una por cada restricción. 8- Intente agregar otra restricción "default" al campo "ciudad". Aparece un mensaje de error indicando que el campo ya tiene una restricción "default" y sabemos que no puede establecerse más de una restricción "default" por campo. 9- Intente establecer una restricción "default" al campo "identity". No se permite.Ver solución
if object_id('visitantes') is not null drop table visitantes; create table visitantes( numero int identity, nombre varchar(30), edad tinyint, domicilio varchar(30), ciudad varchar(20), montocompra decimal (6,2) not null ); alter table visitantes add constraint DF_visitantes_ciudad default 'Cordoba' for ciudad; alter table visitantes add constraint DF_visitantes_montocompra default 0 for montocompra; insert into visitantes values ('Susana Molina',35,'Colon 123',default,59.80); insert into visitantes (nombre,edad,domicilio) values ('Marcos Torres',29,'Carlos Paz'); insert into visitantes values ('Mariana Juarez',45,'Carlos Paz',null,23.90); select * from visitantes; exec sp_helpconstraint visitantes; alter table visitantes add constraint DF_visitantes_ciudad default 'Cordoba' for ciudad; alter table visitantes add constraint DF_visitantes_numero default 0 for numero;
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, horasalida datetime ); 3- Establezca una restricción "default" para el campo "tipo" que almacene el valor "a" en caso de no ingresarse valor para dicho campo. 4- Ingrese un registro sin valor para el campo "tipo": insert into vehiculos values('BVB111',default,default,null); 5- Recupere los registros: select * from vehiculos; 6- Intente establecer otra restricción "default" para el campo "tipo" que almacene el valor "m" en caso de no ingresarse valor para dicho campo. No lo permite porque un campo solamente admite una restricción "default" y ya tiene una. 7- Establezca una restricción "default" para el campo "horallegada" que almacene la fecha y hora del sistema. 8- Ingrese un registro sin valor para los campos de tipo datetime. 9- Recupere los registros: select * from vehiculos; 10- Vea las restricciones. 2 restricciones.
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, horasalida datetime ); alter table vehiculos add constraint DF_vehiculos_tipo default 'a' for tipo; insert into vehiculos values('BVB111',default,default,null); select * from vehiculos; alter table vehiculos add constraint DF_vehiculos_tipo2 default 'm' for tipo; alter table vehiculos add constraint DF_vehiculos_horallegada default getdate() for horallegada; insert into vehiculos (patente,tipo) values('CAA258','a'); select * from vehiculos; exec sp_helpconstraint vehiculos;