Primer problema:
Un comercio almacena los datos de los artículos para la venta en una tabla denominada "articulos".
1- Elimine la tabla, si existe y créela nuevamente:
if object_id('articulos') is not null
drop table articulos;
create table articulos(
codigo int identity,
descripcion varchar(30),
precio decimal(5,2) not null,
cantidad smallint not null default 0,
montototal as precio *cantidad
);
El campo "montototal" es un campo calculado que multiplica el precio de cada artículo por la
cantidad disponible.
2- Intente ingresar un registro con valor para el campo calculado:
insert into articulos values('birome',1.5,100,150);
No lo permite.
3- Ingrese algunos registros:
insert into articulos values('birome',1.5,100);
insert into articulos values('cuaderno 12 hojas',4.8,150);
insert into articulos values('lapices x 12',5,200);
4- Recupere los registros:
select * from articulos;
5- Actualice un precio y recupere los registros:
update articulos set precio=2 where descripcion='birome';
select * from articulos;
el campo calculado "montototal" recalcula los valores para cada registro automáticamente.
6- Actualice una cantidad y vea el resultado:
update articulos set cantidad=200 where descripcion='birome';
select * from articulos;
el campo calculado "montototal" recalcula sus valores.
7- Intente actualizar un campo calculado:
update articulos set montototal=300 where descripcion='birome';
No lo permite.
Ver solución
if object_id('articulos') is not null
drop table articulos;
create table articulos(
codigo int identity,
descripcion varchar(30),
precio decimal(5,2) not null,
cantidad smallint not null default 0,
montototal as precio *cantidad
);
insert into articulos values('birome',1.5,100,150);
insert into articulos values('birome',1.5,100);
insert into articulos values('cuaderno 12 hojas',4.8,150);
insert into articulos values('lapices x 12',5,200);
select * from articulos;
update articulos set precio=2 where descripcion='birome';
select * from articulos;
update articulos set cantidad=200 where descripcion='birome';
select * from articulos;
update articulos set montototal=300 where descripcion='birome';