Procedura za provjeru postojanja sloga s istim primarnim ključem koristi se kod zapisa odnosno izmjene podataka. Koristi se output varijabla kao rezultat pretrage.
Zadatak procedure za provjeru postojanja sloga u našoj tablici MP_VALUTA je
- prihvat podataka šifre valute koju želimo provjeriti
- provjera postojanja sloga običnim preborjavanjem slogoca (COUNT)
- rezultat prebrojavanja se sprema u output varijablu
- u pomoćnu varijablu zapisati upješnost izvršenja radnje
Evo kako bi ta procedura izgledala:
CREATE PROCEDURE dbo.mp_valuta_exists @valuta CHAR(3), @out_ima INT OUT AS SET NOCOUNT ON DECLARE @err INT SET @err = -1 SELECT @out_ima = COUNT(VALUTA) FROM MP_VALUTA WHERE VALUTA = @valuta SET @err = @err + @@ERROR RETURN @err GO
Ovdje se koristi funkcija COUNT koja vraća broj slogova tablice. Kao parametar se koristi primary key polje VALUTA ali sam na puno mjesta vidio da se koristi i COUNT(*). Ta solucija je isto ispravna jedino je zanemarivo sporija ukoliko se radi o većoj tablici koja ima više polja.
Output varijabla @out_ima dobija vrijednost broja slogova koji imaju u polju VALUTA vrijednost @valuta. Kako se radi o primarnom ključu, vrijednost može biti samo 0 ili 1.
novi komentari