HIK Elektronikus Felsőoktatási Tankönyv- és Szakkönyvtár
A Kempelen Farkas Felsőoktatási Digitális Tankönyvtár/vagy más megjelenítő által közvetített digitális tartalmat a felhasználó a szerzői jogról szóló 1999. évi LXXVI. tv. 33. paragrafus (4) bekezdésében meghatározott oktatási, illetve tudományos kutatási célra használhatja fel. A felhasználó a digitális tartalmat képernyőn megjelenítheti, letöltheti, arról elektronikus adathordozóra vagy papíralapon másolatot készíthet, adatrögzítő rendszerében tárolhatja. A Kempelen Farkas Felsőoktatási Digitális Tankönyvtár/vagy más megjelenítő weblapján található digitális tartalmak üzletszerû felhasználása tilos, valamint kizárt a digitális tartalom módosítása és átdolgozása, illetve az ilyen módon keletkezett származékos anyag további felhasználása.

18.7.4. Többutasításos táblaértékű függvények

Példaprogram, mely visszaadja a Products tábla azon sorait, amelyek UnitsInStock oszlopában a paraméterként átadott újrarendelési szintnél kisebb, vagy azzal egyenlő érték szerepel, és beszúr egy új oszlopot Reorder néven:

CREATE FUNCTION ProductsToBeOrdered2(@ReorderLevel int)

RETURNS @MyProducts table

(

ProductId int,

ProductName nvarchar(40),

UnitsInStock smallint,

Reorder nvarchar(3)

)

AS

BEGIN

-- sorok kinyerése a Products táblából és

-- beszúrásuk a MyProducts táblába

-- a Reorder oszlop ’NO’ –ra állítása

INSERT INTO @MyProducts

SELECT ProductID, ProductName, UnitsInStock, ’NO’

FROM Products;

-- a MyProducts tábla frissítése a Reorder oszlop

-- ’YES’ –re állításával, ha a UnitsInStock

-- kisebb, mint a @ReorderLevel, vagy azzal egyenlő

UPDATE @MyProducts

SET Reorder = ’YES’

WHERE UnitsInStock <= @ReorderLevel

RETURN

END

Ennek meghívásakor sem kell a tulajdonost feltüntetnünk:

SELECT * FROM ProductsToBeReordered2(20);

Az SQL Server lehetővé teszi, hogy az adatbázisokban eljárásokat tároljunk. A tárolt eljárások abban különböznek a felhasználói függvényektől, hogy jóval többféle adattípust adhatunk vissza.

Általában akkor készítünk tárolt eljárást, ha olyan feladatot kell elvégeznünk, ami erőteljesen igénybe veszi az adatbázist, vagy ha központosítani szeretnénk a kódokat, hogy az egyes felhasználóknak ne kelljen ugyanarra a feladatra saját programokat írniuk. Az intenzív adatbázis-használatára jó példa lehet egy banki alkalmazás, amelynek segítségével a számlákat frissítjük a nap végén, központosított kódra pedig akkor lehet szükség, ha a felhasználók hozzáférését az adatbázistáblákhoz korlátozni akarjuk.