Sunteți pe pagina 1din 4

Cerinţe Proceduri Stocate

1. Să se creeze o procedură stocată pentru a afişa datele unui cursant


(student) al cărui CNP este specificat ca parametru. În cazul în care
parametrul nu este specificat (rămâne NULL) se va afişa un mesaj de
eroare.
2. Sa se creeze o procedura stocata care sa afiseze studentii dintr-o
anumita localitate specificata ca parametru. În cazul în care
parametrul nu este specificat (rămâne NULL) se va afişa un mesaj de
eroare.
3. Să se creeze o procedură stocată pentru a determina valoarea medie a
taxei de plata pt modulele din tabelul Module. Procedura va contine
un parametru de tip OUTPUT care va prelua valoarea medie a taxei
pentru toate modulele.
4. Să se creeze o procedură stocată pentru a determina taxa maximă de
plată. Procedura va contine un parametru de tip OUTPUT care va
prelua valoarea taxei maxime din toate modulele.
5. Se doreşte calculul unei reduceri pentru toţi cursanţii (studenţii). Suma
finală de plată va fi egală cu valoarea taxei iniţiale din care se scade
15% din taxa maximă de plată.
1. Să se creeze o procedură stocată pentru a afişa datele unui cursant
(student) al cărui CNP este specificat ca parametru. În cazul în care
parametrul nu este specificat (rămâne NULL) se va afişa un mesaj de
eroare.
CREATE PROCEDURE DateSTUDENT
@cnp char(13) = NULL
AS
IF @cnp IS NULL
BEGIN
PRINT 'NU ATI FURNIZAT UN CNP !'
RETURN
END
ELSE
SELECT * FROM Cursanti WHERE CNPCursant = @cnp

Execuţia:
execute datestudent '1721323434345'
sau
execute datestudent – pt a obţine mesajul de eroare

2. Sa se creeze o procedura stocata care sa afiseze studentii dintr-o


anumita localitate specificata ca parametru. În cazul în care
parametrul nu este specificat (rămâne NULL) se va afişa un mesaj de
eroare.
Create procedure afiseaza_oras
@oras nvarchar(50) =null
AS
IF @oras is null
begin
print 'alegeti un oras'
Return
end
else
Select * from Cursanti where AdresaCursant like @oras

Execuţia:

execute afiseaza_oras Iasi


3. Să se creeze o procedură stocată pentru a determina valoarea medie a
taxei de plata pt modulele din tabelul Module. Procedura va contine
un parametru de tip OUTPUT care va prelua valoarea medie a taxei
pentru toate modulele.

Create procedure test2


@valtax money Output
AS
Select @valtax=AVG(taxamodul)
from Module

Folosire procedura:

declare @valtax money


exec test2 @valtax output
select @valtax

sau:

declare @valtax money


exec test2 @valtax output
select * from Module where TaxaModul>= @valtax

4. Să se creeze o procedură stocată pentru a determina taxa maximă de


plată. Procedura va contine un parametru de tip OUTPUT care va
prelua valoarea taxei maxime din toate modulele.

CREATE PROCEDURE [dbo].[AflaTaxaMax]


@TaxMax Money OUTPUT
AS
SELECT @taxMAX=MAX(Tax)
FROM dbo.Module

Execuţia

declare @taxmax as money


exec dbo.AflaTaxaMax @taxmax output
select @taxmax
5. Se doreşte calculul unei reduceri pentru toţi cursanţii (studenţii). Suma
finală de plată va fi egală cu valoarea taxei iniţiale din care se scade
15% din taxa maximă de plată.

Se foloseşte procedura declarată la cerinţa 4 şi se va prelua valoarea


parametrului de tip Output într-o variabilă de memorie.
DECLARE @taxmax1 AS money
EXECUTE dbo.AflaTaxaMax @TaxMax=@taxmax1 OUTPUT
SELECT dbo.Student.Surname, dbo.Module.[Module name], dbo.Module.Tax-
@taxmax1*0.15 AS ValPlata
FROM Student inner join Participation on dbo.Student.[Student
ID]=dbo.Participation.[Student ID] inner join dbo.Module on
dbo.Participation.[Module ID]=dbo.Module.[ModuleID]

S-ar putea să vă placă și