Procedimientos y Triggers

5
José Alberto García Valencia EK: 04 Grupo: “B” NC: 10290834 Maestro: Ing. Juan Bernaldino Martinez Isabeles TALLER DE BASES DE DATOS Ejercicios de Procedimientos en SQLServer PROCEDIMIENTOS 1. Procedimiento para mostrar el nombre del día de hoy. CREATE PROCEDURE Dia_Hoy AS PRINT DATENAME(dw,GETDATE()) EXEC Dia_Hoy 2. Procedimiento que obtenga el número de días que faltan para que termine el año. CREATE PROCEDURE Num_DiasFaltantes AS PRINT DATENAME(dy,365-GETDATE()) EXEC Num_DiasFaltantes 3. Que muestre el número de alumnos registrados. CREATE PROCEDURE Alumnos_Refistrados AS SELECT COUNT(*) AS[Total] FROM Alumnos EXEC Alumnos_Refistrados 4. procedimiento para realizar búsquedas por el nombre del alumno, debe recibir como parámetro de entrada el nombre del alumno. CREATE PROCEDURE Busqueda_Alum @Cadena AS VARCHAR(15) AS SET @Cadena=@Cadena+'%' SELECT Nombre FROM Alumnos WHERE Nombre LIKE @Cadena EXEC Busqueda_Alum 'Isaias' 5. procedimiento que reciba como parámetro una cadena y una opción para realizar una búsqueda en la tabla alumnos por más de un campo (ejemplo: 1 nombre, 2 domicilio, 3..) CREATE PROCEDURE Busqueda_AlumTabl @Cadena AS VARCHAR(15),@Opcion AS INT AS SET @Cadena=@Cadena+'%' IF @Opcion=1

description

jj

Transcript of Procedimientos y Triggers

Jos Alberto Garca Valencia EK: 04 Grupo: B NC: 10290834Maestro: Ing. Juan Bernaldino Martinez IsabelesTALLER DE BASES DE DATOSEjercicios de Procedimientos en SQLServer PROCEDIMIENTOS1. Procedimiento para mostrar el nombre del da de hoy.CREATE PROCEDURE Dia_HoyASPRINT DATENAME(dw,GETDATE())EXEC Dia_Hoy

2. Procedimiento que obtenga el nmero de das que faltan para que termine el ao.CREATE PROCEDURE Num_DiasFaltantesASPRINT DATENAME(dy,365-GETDATE())EXEC Num_DiasFaltantes

3. Que muestre el nmero de alumnos registrados.CREATE PROCEDURE Alumnos_RefistradosASSELECT COUNT(*) AS[Total] FROM AlumnosEXEC Alumnos_Refistrados

4. procedimiento para realizar bsquedas por el nombre del alumno, debe recibir como parmetro de entrada el nombre del alumno.CREATE PROCEDURE Busqueda_Alum @Cadena AS VARCHAR(15)ASSET @Cadena=@Cadena+'%'SELECT Nombre FROM AlumnosWHERE Nombre LIKE @CadenaEXEC Busqueda_Alum 'Isaias'

5. procedimiento que reciba como parmetro una cadena y una opcin para realizar una bsqueda en la tabla alumnos por ms de un campo (ejemplo: 1 nombre, 2 domicilio, 3..)

CREATE PROCEDURE Busqueda_AlumTabl @Cadena AS VARCHAR(15),@Opcion AS INTASSET @Cadena=@Cadena+'%'IF @Opcion=1BEGINSELECT * FROM AlumnosWHERE Nombre LIKE @CadenaEND

IF @Opcion=2BEGINSELECT * FROM AlumnosWHERE Domicilio LIKE @CadenaEND IF @Opcion=3BEGINSELECT * FROM AlumnosWHERE control LIKE @CadenaENDEXEC Busqueda_AlumTabl 'Isaias',1

6. Procedimiento que utilice una vista para mostrar el nombre del alumno, la ciudad de procedencia y el estado.CREATE PROCEDURE Alum_ProcedenciaASSELECT Alumnos.Nombre,Ciudades.Nom_Cd,Estados.Nom_Edo FROM (Ciudades INNER JOIN Estados ON Ciudades.Id_Edo=Estados.Id_Edo) INNER JOIN Alumnos ON Ciudades.Id_Ciud=Alumnos.Id_CiudEXEC Alum_ProcedenciaSELECT * FROM Alum_Procedencia

7. Procedimiento que muestre la lista de mujeres, solo si son ms mujeres que hombres, de no ser as, que muestre la lista de hombres.CREATE PROCEDURE ListMujeres_Listhombres ASDECLARE @Mujer INTSET @Mujer=(SELECT COUNT(Sexo) FROM Alumnos WHERE Sexo='F')DECLARE @Hombre INTSET @Hombre=(SELECT COUNT(Sexo) FROM Alumnos WHERE Sexo='M')IF @Mujer>@HombreBEGINPRINT 'Son Mas Mujeres'SELECT Nombre FROM Alumnos WHERE Sexo='F'ENDELSEBEGINPRINT 'Son Mas Hombres'SELECT Nombre FROM Alumnos WHERE Sexo='M'ENDEXEC ListMujeres_Listhombres

8. Procedimiento que indique si la suma de las edades de las mujeres, es mayor, igual o menor a la suma de las edades de los hombres.

CREATE PROCEDURE Suma_edades_MH ASDECLARE @Mujer INTSET @Mujer=(SELECT SUM(Edad) FROM Alumnos WHERE Sexo='F')DECLARE @Hombre INTSET @Hombre=(SELECT SUM(Edad) FROM Alumnos WHERE Sexo='M')

IF @Mujer>@HombreBEGINPRINT 'La Suma de las edades de las Mujeres es mayor que la de los Hombres'ENDELSEIF @Mujer18BEGINROLLBACKPRINT 'No Se Puede Eliminar'ENDEND

4. Realizar un Trigger que permita agregar registros, unicamente, de alumnos de 18 aos o ms.CREATE TRIGGER Agregar_Registro_Mayor_18 ON AlumnosAFTER INSERTASBEGINSET NOCOUNT ON;DECLARE @X INTSELECT @X=Edad FROM INSERTEDIF @X