85 - Agregar campos y restricciones (alter table)


Primer problema:
Trabaje con una tabla llamada "empleados".
1- Elimine la tabla, si existe y créela:
 if object_id('empleados') is not null
  drop table empleados;

 create table empleados(
  documento char(8) not null,
  nombre varchar(10),
  domicilio varchar(30),
  ciudad varchar(20) default 'Buenos Aires'
 );

2- Agregue el campo "legajo" de tipo int identity y una restricción "primary key":
 alter table empleados
  add legajo int identity
  constraint PK_empleados_legajo primary key;

3- Vea si la estructura cambió y si se agregó la restricción:
 sp_columns empleados;
 exec sp_helpconstraint empleados;

4- Agregue el campo "hijos" de tipo tinyint y en la misma sentencia una restricción "check" que no 
permita valores superiores a 30:
 alter table empleados
  add hijos tinyint
  constraint CK_empleados_hijos check (hijos<=30);

5- Ingrese algunos registros:
 insert into empleados values('22222222','Juan Lopez','Colon 123','Cordoba',2);
 insert into empleados values('23333333','Ana Garcia','Sucre 435','Cordoba',3);

6- Intente agregar el campo "sueldo" de tipo decimal(6,2) no nulo y una restricción "check" que no 
permita valores negativos para dicho campo:
 alter table empleados
  add sueldo decimal(6,2) not null
  constraint CK_empleados_sueldo check (sueldo>=0);
No lo permite porque no damos un valor por defecto para dicho campo no nulo y los registros 
existentes necesitan cargar un valor.

7- Agregue el campo "sueldo" de tipo decimal(6,2) no nulo, una restricción "check" que no permita 
valores negativos para dicho campo y una restricción "default" que almacene el valor "0":
 alter table empleados
  add sueldo decimal(6,2) not null
  constraint CK_empleados_sueldo check (sueldo>=0)
  constraint DF_empleados_sueldo default 0;

8- Recupere los registros:
 select * from empleados;

9- Vea la nueva estructura de la tabla:
 exec sp_columns empleados;

10- Vea las restricciones:
 exec sp_helpconstraint empleados;
Ver solución

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

 create table empleados(
  documento char(8) not null,
  nombre varchar(10),
  domicilio varchar(30),
  ciudad varchar(20) default 'Buenos Aires'
 );

 alter table empleados
  add legajo int identity
  constraint PK_empleados_legajo primary key;

 exec sp_columns empleados;
 exec sp_helpconstraint empleados;

 alter table empleados
  add hijos tinyint
  constraint CK_empleados_hijos check (hijos<=30);

 insert into empleados values('22222222','Juan Lopez','Colon 123','Cordoba',2);
 insert into empleados values('23333333','Ana Garcia','Sucre 435','Cordoba',3);

 alter table empleados
  add sueldo decimal(6,2) not null
  constraint CK_empleados_sueldo check (sueldo>=0);

 alter table empleados
  add sueldo decimal(6,2) not null
  constraint CK_empleados_sueldo check (sueldo>=0)
  constraint DF_empleados_sueldo default 0;

 select * from empleados;

 exec sp_columns empleados;

 exec sp_helpconstraint empleados;



 

Retornar