Dodatak: Naredbe za kontrolu toka
U MS SQL Server-u naredbe za kontrolu toka omogućavaju donošenje odluka, ponavljanje naredbi i upravljanje izvršavanjem SQL koda. One imaju sličnu ulogu kao kontrolne strukture u programskim jezicima.
Najvažnije naredbe za kontrolu toka u SQL Server 2008 su:
1. IF
Koristi se za proveru uslova.
Sintaksa
IF uslov
BEGIN
naredbe
END
Primer
DECLARE @broj INT;
SET @broj = 10;
IF @broj > 5
BEGIN
PRINT 'Broj je veci od 5';
END
2. IF...ELSE
Omogućava izvršavanje jedne grupe naredbi ako je uslov tačan, a druge ako nije.
Primer
DECLARE @godina INT;
SET @godina = 2025;
IF @godina > 2020
BEGIN
PRINT 'Nova godina';
END
ELSE
BEGIN
PRINT 'Stara godina';
END
3. WHILE
Koristi se za ponavljanje naredbi dok je uslov tačan.
Primer
DECLARE @i INT;
SET @i = 1;
WHILE @i <= 5
BEGIN
PRINT @i;
SET @i = @i + 1;
END
4. BREAK
Prekida izvršavanje WHILE petlje.
Primer
DECLARE @i INT;
SET @i = 1;
WHILE @i <= 10
BEGIN
IF @i = 5
BREAK;
PRINT @i;
SET @i = @i + 1;
END
5. CONTINUE
Preskače ostatak trenutne iteracije i prelazi na sledeću.
Primer
DECLARE @i INT;
SET @i = 0;
WHILE @i < 5
BEGIN
SET @i = @i + 1;
IF @i = 3
CONTINUE;
PRINT @i;
END
6. GOTO
Prebacuje izvršavanje na označenu lokaciju (labelu).
Primer
DECLARE @broj INT;
SET @broj = 1;
ponovo:
PRINT @broj;
SET @broj = @broj + 1;
IF @broj <= 3
GOTO ponovo;
7. RETURN
Prekida izvršavanje procedure ili funkcije.
Primer
CREATE PROCEDURE sp_Test
AS
BEGIN
PRINT 'Pocetak';
RETURN;
PRINT 'Ovo se ne izvrsava';
END
8. WAITFOR
Pauzira izvršavanje određeno vreme.
Primer
WAITFOR DELAY '00:00:05';
PRINT 'Proslo je 5 sekundi';
9. TRY...CATCH
Koristi se za obradu grešaka.
Primer
BEGIN TRY
SELECT 10 / 0;
END TRY
BEGIN CATCH
PRINT 'Doslo je do greske';
END CATCH
Najvažnije za učenike 3. razreda
U praksi, za nivo srednje škole najčešće se koriste:
-
IF
-
IF ELSE
-
WHILE
-
BREAK
-
CONTINUE
Dok su:
-
GOTO
-
RETURN
-
TRY CATCH
-
WAITFOR
više napredne naredbe koje je dovoljno upoznati konceptualno.
Podela naredbi za kontrolu toka
| Naredba | Namena |
|---|---|
| IF | Grananje |
| IF ELSE | Dvostruko grananje |
| WHILE | Ponavljanje |
| BREAK | Prekid petlje |
| CONTINUE | Preskok iteracije |
| GOTO | Skok na labelu |
| RETURN | Prekid procedure/funkcije |
| TRY CATCH | Obrada grešaka |
| WAITFOR | Pauza izvršavanja |