Witam.
Mam takie zadanie(chodzi o Zad.2):
Zad.1
Napisz procedurę dopisującą nowego gościa. Jeśli gość o takim imieniu oraz nazwisku już istnieje, nie wprowadzaj danych.
Zad.2
Zmodyfikuj procedurę z zadania 1 tak, aby wprowadzała od razu rezerwację. Parametrami procedury będą: imię, nazwisko, nr_pokoju, data_od, data_do.
Kod:
ALTER PROCEDURE dodaj_goscia2 (@Imie varchar(30), @Nazwisko varchar(30), @NrPokoju int, @DataOd DateTime, @DataDo DateTime )
AS BEGIN
IF EXISTS(SELECT 1 FROM Gosc WHERE Imie=@Imie and Nazwisko=@Nazwisko)
PRINT 'TAKA OSOBA JUŻ ISTNIEJE';
ELSE
BEGIN
Declare @id int, @idrez int
select @id = isnull(MAX(IdGosc), 0)+1 from Gosc
select @idrez = isnull(MAX(IdRezerwacja), 0)+1 from Rezerwacja
IF Exists(SELECT 1 FROM Rezerwacja WHERE NrPokoju=@NrPokoju)
BEGIN
INSERT INTO Gosc(IdGosc, Imie, Nazwisko)
SELECT @id, @Imie, @Nazwisko FROM Gosc
INSERT INTO Rezerwacja(IdRezerwacja, NrPokoju, DataOd, DataDo, IdGosc, Zaplacona)
SELECT @idrez, @NrPokoju, @DataOd, @DataDo, @id, 1 FROM Rezerwacja
PRINT 'Dodano osobę i rezerwacje! '+@Imie+' '+@Nazwisko
END
ELSE
print 'Nie ma takiego pokoju!'
END
END
Wyskakują takie błędy jak na załączniku rezultat.png
W czym tkwi problem o jaką duplikację chodzi?