domingo, 16 de marzo de 2014

Estructuras de las tablas en SQL Server - 2 de 2



9. Añadir el campo Sexo, Fecha de nacimiento y Estado Civil a la tabla Profesores :

Alter Table Profesores 
add Sexo nvarchar(6) null ,
Fecha_Nac smalldatetime null ,
[Estado Civil] nvarchar(12) null


10. Eliminar el campo Edad de la tabla Profesores :

alter table Profesores 
drop column Edad


11. Añadir el campo Sexo, Dirección y Estado Civil a la tabla Alumnos :

Alter Table Alumnos 
add Sexo nvarchar(6) null ,
Direccion varchar(80) null ,
[Estado Civil] nvarchar(12) null


12. Borrar la relación existente entre la tabla profesores y Colegios :

sp_helpconstraint profesores 
sp_helpconstraint colegios 
alter table profesores drop constraint fk_profesores


13. Crear de nuevo la relación borrada en el ejercicio anterior que tenga relación en cascada y actualización :

alter table profesores 
add constraint FK_Profesores foreign key(cod_colegio) 
references colegios(cod_colegio) on update cascade 
on delete cascade


14. Agregar un identificador único en la tabla Regiones :

alter table regiones add Unico uniqueidentifier default newid()


15. Queremos rellenar los datos de las tablas creadas, para ello vamos a introducir a tres alumnos en los colegios. Los datos son los siguientes: 

Alumnos: 
Marta Serrano Lopez  Provincia: Madrid Localidad: Madrid  
Javier Morgado Palomo Provincia: Alicante Localidad: Arenales del sol 
Miguel Torres Tormo Provincia: Barcelona Localidad: Llobregat 

Rellenar las tablas convenientemente con datos relacionales. Ejemplo: Region: Comunidad Valenciana, 3 datos como mínimo en cada tabla.

  • TABLA REGIONES 

Insert into Regiones (Regiones) values('MADRID') 
Insert into Regiones (Regiones) values('COMUNIDAD VALENCIANA') 
Insert into Regiones (Regiones) values('CATALUÑA') 


Nos dará error por el tipo de dato introducido en el campo regiones, debemos cambiar el tipo de dato para poder utilizar la tabla 

ALTER TABLE REGIONES 
ALTER COLUMN REGIONES NVARCHAR(50) NULL


Ahora podemos insertar el registro que faltaba:


  • TABLA COLEGIOS 
Antes de insertar verifica el código de la región. Debe ser el que te genero la tabla regiones.


insert into Colegios (nombre,localidad ,provincia,año_construccion ,coste_construccion,cod_region) values ('PADRE POVEDA','MADRID','MADRID','01/01/65',1129876,3)
insert into Colegios (nombre,localidad ,provincia,año_construccion ,coste_construccion,cod_region) values ('CARMELITAS','ALICANTE','ELCHE','01/01/49',298763,5)
insert into Colegios  (nombre,localidad ,provincia,año_construccion ,coste_construccion,cod_region) values ('SAN PEP','BARCELONA','BARCELONA','01/01/63',234567,6)


SELECT IDENT_SEED('REGIONES') AS [PRIMER VALOR] 
SELECT IDENT_CURRENT('REGIONES') AS [VALOR ACTUAL] 
SELECT IDENT_INCR('REGIONES') AS [INCREMENTO] 
SELECT IDENTITYCOL,REGIONES FROM REGIONES


  • TABLA ALUMNOS 

insert into alumnos  (dni,Nombre,Apellido1,Apellido2 ,Fecha_nac,Localidad,Provincia,Cod_Colegio) values ('54132456-R','Marta','Serrano','Lopez','15/03/93','MADRID','MADRID',6)


PARA INTRODUCIR AL SIGUIENTE ALUMNO HAY QUE CAMBIAR LA COLUMNA DE LOCALIDAD PARA QUE ADMITA MAS CARACTERES.

alter table alumnos alter column Localidad nvarchar(50) null



insert into alumnos  (dni,Nombre,Apellido1,Apellido2 ,Fecha_nac,Localidad,Provincia,Cod_Colegio) values ('3414356-R','Javier','Morgado','Palomo','15/03/93','ARENALES DEL SOL','ALICANTE',11)

insert into alumnos  (dni,Nombre,Apellido1,Apellido2 ,Fecha_nac,Localidad,Provincia,Cod_Colegio) values ('3254353-R','Miguel','Torres','Tormo','15/03/95','LLOBREGAT','BARCELONA',12)


16. Eliminar un tipo de dato que hayamos usado en las tablas :

exec sp_droptype TNulo


No se puede eliminar el dato porque está vinculado a una tabla, para poder eliminarlo deberíamos modificar la tabla y cambiar todos los campos donde el dato está presente.

17. Borrar la tabla Regiones :

drop table regiones

¿Qué ocurre?. ¿Cómo lo solucionamos?

Servidor: mensaje 3726, nivel 16, estado 1, línea 1 
No se puede quitar el objeto 'regiones'. Hay una referencia a él en una restricción FOREIGN KEY.


Se soluciona quitando las dependencias que tienen la tablas. 

Borrar todas las tablas, tipos de datos y base de datos. Realizarlo en el siguiente orden.

drop table alumnos 
drop table profesores 
drop table colegios 
drop table regiones
go
exec sp_droptype TNulo
exec sp_droptype TNoNulo
go
use master
go
drop database Escuela




Espero haber ayudado en algo. Hasta la próxima oportunidad! 





No hay comentarios:

Publicar un comentario en la entrada