A Microsoft SQL Server 2018

Szakterület: Informatika, kibernetika és programozás

Fájl mérete: 87 KB

Job letöltve: 18 fő.

Tárolt eljárás - ez a leggyakrabban használt program szerkezete adatbázisok, amelyet arra terveztek, különleges módon a script (vagy inkább a csomag), amely az adatbázisban tárolt helyett egy külön fájlban. A tárolt eljárások eltérnek a forgatókönyvet, hogy használhatják a bemeneti és kimeneti paraméterek és visszatérési értékek, amelyeket nem is lehet használni a szokásos forgatókönyv.

A tárolt eljárás egyszerűen egy név a szoftverrel kapcsolatos T-SQL-kódot, amely tárolja és a kiszolgálón fut. Ez tartalmazhat szinte bármilyen tervezési vagy utasításokat, amelynek végrehajtását támogatja az SQL Server. Az eljárásokat lehet használni, hogy változtatni az adatokat, visszatérő skalárnak vagy teljes eredmény meg. A tárolt eljárások az elsődleges felület kell alkalmazások által használt bármely adat elérését az adatbázisokban. A tárolt eljárások nem csak ellenőrzik a hozzáférést az adatbázishoz, hanem elkülöníteni az adatbázis kódot, hogy egyszerűsítse a karbantartást.
Mivel szerver szoftver tárolt eljárások számos előnye van.

  • Tárolt eljárások vannak tárolva összeállított formában, így gyorsabban fut, mint a csomagokat, illetve kéri.
  • Feldolgozást végző a szerver helyett a munkaállomás, jelentősen csökkenti a hálózat terhelését.
  • A tárolt eljárások moduláris megjelenés, így azok könnyen megvalósítható és módosítani. Ha a kliens alkalmazás meghív egy tárolt eljárást végrehajtani egy műveletet, a módosítási eljárások egy helyen érinti annak teljesítményét minden felhasználó számára.
  • A tárolt eljárások lehet tekinteni, mint egy fontos adatbázis biztonsági elem. Ha az összes kapcsolódó ügyfelek az adatokat a tárolt eljárások, a közvetlen hozzáférést biztosít a táblázatok letiltható, és minden felhasználó akciói lesz ellenőrzés alatt. Ennél is fontosabb, a tárolt eljárások elrejteni a felhasználói adatbázis szerkezetét, és lehetővé teszi neki, hogy csak azokat azokat a műveleteket, amelyek úgy vannak programozva a tárolt eljárás.

Kezelése Tárolt eljárások A tárolt eljárások által ellenőrzött adatok meghatározása nyelv utasításait (DDL) CREATE, ALTER és DROP. Közös kód T-SQL szintaxis, hogy hozzon létre egy tárolt eljárás a következő:

CREATE PROC | ELJÁRÁS [ <@parameter> [= ] [OUT | OUTPUT]] [. n] AS [BEGIN] [END] . = [TITKOSÍTÁS] [újrafordítani] [EXECUTE_AS_Clause]

A szerkezet a szolgáltató megfelel az alapvető szintaxis CREATE , alapjául szolgáló bármely üzemeltető CREATE. Az egyetlen megkülönböztető tulajdonsága az, hogy hagyjuk a kulcsszót ELJÁRÁS vagy PROC. Mindkét lehetőség érvényes: PROC csak rövidítés eljárást.
Mindkét eljárás belül egyedinek kell lennie az adatbázis nevét (eljárás_neve), amely megfelel a vonatkozó szabályok azonosítókat.

Eljárások tetszőleges számú bemeneti paraméterek (@parametr) adattípusok (data_type), amelyeket az eljárásban, mint lokális változók. Amikor eljárás végrehajtása az egyes deklarált formális paramétereknek a tényleges értékeket kell továbbítani. Alternatív módon, egy alapértelmezett értéket (alapértelmezett) lehet meghatározni a bemeneti paraméter, amely kell egy állandó, vagy egyenlő NULL. Ebben az esetben, az eljárás végezhető meghatározása nélkül az érték a megfelelő argumentum. Használata egy adott esetben bemeneti paraméterek.

Az is lehetséges, hogy a kimeneti paraméterek (jelölt kimenet), amely lehetővé teszi a tárolt eljárás, hogy visszatérjen az egy vagy több skalár értékeket a szubrutin, ahonnan hívták. Amikor létrehoz egy eljárást, megadhatja három paramétert. Amikor létrehoz egy eljárást egy paraméter ENCRYPTION SQL Server titkosítja az azonosítási eljárást. Ha az SQL Server újrafordítod fordítunk újra a tárolt eljárást minden alkalommal, amikor futtatni. Hajtják végre az a paraméter határozza meg a biztonsági környezetet az eljárást.
A meghatározás a tárolt eljárások a kulcsszó után AS kell hozni közvetlenül eljárás test (sql_statements) egy-egy kódot egy vagy több T-SQL nyelv utasításait.

DROP nyilatkozat törli a tárolt eljárást az adatbázisból. ALTER nyilatkozat nem módosítja a teljes tárolt eljárást. Ahhoz, hogy a módosítások alkalmazása előnyös az ALTER nyilatkozatot, és nem pedig egy eltávolítási utasításokat és a teremtés, mint az utóbbi módszer eltávolítja engedélyeket.

Példa tárolt eljárás paraméterek nélkül

Ahhoz, hogy teszteljék az új eljárást, megnyit egy új lekérdezést SQL Server és végrehajtja a következő kódot.

Alkalmazása bemeneti paraméterek

A tárolt eljárás rendelkezik bizonyos eljárási lehetőségek (és ha alkalmazzák a .NET infrastruktúra, az ilyen lehetőségek nagyon jelentős), valamint javított teljesítményt, de a legtöbb esetben a tárolt eljárás nem teszi lehetővé, ha nem is lehetőséget biztosított, hogy neki néhány adat azt jelzi, hogy milyen intézkedéseket kell tenni vele. Különösen a fő probléma az előző tárolt eljárás (spr_getOrders), akkor a statikus. Ha a felhasználóknak meg kell rendelni információ más ideig, akkor ez az eljárás nem segít nekik. Ezért szükséges, hogy az átadásának lehetősége bele a megfelelő bemeneti paraméterek, ami dinamikusan változik a mintavételi időszakban.

@parameter_name [AS] adattípus [= default | NULL]

A következő példában, a tárolt eljárás spr_getOrders egészíti két bemeneti paraméterek, amelyek lehetővé teszik, hogy határozza meg kifejezetten a mintavételi periódus.

ALTER ELJÁRÁS [dbo]. [Spr_getOrders] @dateBegin datetime. @dateEnd datetime AS SELECT IdOrd, IdCust, OrdDate FROM [Order] WHERE (OrdDate KÖZÖTT @dateBegin ÉS @dateEnd)

Az alábbi három példa szemléltetésére tárolt eljárás hívások, és átadják a paramétereket az eredeti sorrendje és neve:

Alkalmazása a kimeneti paraméterek

Output paraméterek lehetővé teszik a tárolt eljárás az adatok a hívó program. Annak megállapításához, a kimeneti paraméterek a kulcsszó OUT [PUT], amely ahhoz szükséges, mint az értékelési eljárás során, és amikor ez az úgynevezett. A legtöbb tárolt eljárás kimeneti paraméterek lokális változó. A hívó eljárás vagy a kimeneti változókat a csomag kell előre, így a kapott értéket. Ha a tárolt eljárás befejeződött, a jelenlegi beállítás átkerül a helyi változó hívó.

A következő példában, a kimeneti paramétert használjuk, hogy visszatérjen egy egyedi azonosítót az újonnan hozzáadott termék.

CREATE ELJÁRÁS spr_addProduct @Description nvarchar (100), @InStock int = 0, @IdProd int OUT AS

INSERT termék ([Leírás], instock) ÉRTÉKEK (@Description, @InStock)

SET @IdProd = @@ IDENTITY

DECLARE @IdProd int

EXEC spr_addProduct @Description = N 'Új érkezések', @IdProd = @IdProd OUTPUT

SELECT @IdProd például N '@IdProd'

Vegye figyelembe, hogy az értékeket minden paraméter nem teljesítette az eljárás hívást. Instock paraméter opcionális, mivel az alapértelmezett beállítás formájában nulla, amely felhasználható, ha nem adják meg kifejezetten mást jelentenek neki. Így, ha a hívást a tárolt eljárást és az átviteli értékek segítségével történik pozicionális paramétereket, akkor kell kitölteni minden helyzetben a paraméter listában, legalábbis mielőtt ez utóbbi felel meg paramétert, amelynek az értéke meg kell adni.

Megerősítése a sikeres vagy sikertelen a munka befejezésekor a visszatérési értékeket. Egy RETURN parancsot.

Bármilyen okozott, hogy végre egy tárolt eljárás egy értéket ad vissza, függetlenül attól, hogy a visszatérési értéket adni. Alapértelmezésben sikeres befejezése után az SQL Server adatbázis eljárások automatikusan visszatér a nulla értéket.
Hogy nyújtson be egy visszatérési értéke a tárolt eljárás vissza a hívó kód, elegendő alkalmazni a return:

RETURN [<Целое число>]

Figyeljük meg, hogy a visszatérési érték mindig egész szám lehet.

Az értékek visszaadása a célja csupán annak jelzésére sikere vagy kudarca a tárolt eljárás, és lehetővé teszi még, hogy kijelölje a fokú és jellegű a siker vagy kudarc. A visszatérési érték, hogy visszatérjen a tényleges adatok, mint az azonosító értékét vagy adatokat az érintett sorok száma tárolt eljárás tekinthető érvénytelennek programozási gyakorlat. A visszatérési értéke 0 jelzi a sikeres végrehajtását az eljárást, és az alapértelmezett beállítás. A Microsoft fenntartva az értékeket -99 -1 csak belső használatra. A fejlesztők a visszatérő hiba állapot a felhasználót arra, hogy használja az értékek -100 vagy kevesebb.

Az egyik legfontosabb jellemzője a visszatérő állítás, hogy annak végrehajtása vezet feltétlen megszűnése és kilép a tárolt eljárás. Ez azt jelenti, hogy függetlenül attól, hogy hol található a return a kódot egy tárolt eljárást, miután a teljesítmény már nem lesz végrehajtható akár egyetlen kódsort. Kevesebb abszolút shutdown azt jelentette, hogy a hatás az üzemeltető által RETURN végzett függetlenül attól, hogy a kód azt érzékeli. Másrészt, a tolerancia a tárolt kód az eljárás több operátorok és végrehajtásához, ezek a szolgáltatók következhet be, ha ez vezet a hagyományos szerkezet a kód folyamatot.

Az előző példában, amikor megpróbált egy új termékre duplán nevezett termékre vonatkozó adatokat hozzáadni a Terméktáblázathoz, hiba léphet fel, mivel az egyedi korlátot a termék neve rendezi. Kiterjesztjük a tárolt spr_addProduct eljárást, előzetesen ellenőrizzük az adott termék jelenlétét az adatbázisban, és jelezzük a művelet sikerességét a kimeneti paraméteren keresztül.

ALTER ELJÁRÁS [dbo]. [Spr_addProduct] @A leírás nvarchar (100), @InStock int = 0, @IdProd int OUT AS

HA KIVÁLJA (KIVÁLASZTJA * A TERMÉKET, HOGY [Leírás] = @ Termékleírás) RETURN -100

INSERT termék ([Leírás], InStock) VALUES (@ leírás, @InStock)

SET @IdProd = @@ IDENTITY

Ha tárolt eljárást hív, ha kimeneti érték várható, az EXEC parancsnak egész számot kell tartalmaznia:

EXEC @ local_variable = security_procedure_name;

DECLARE @return_value int, @IdProd int

EXEC @return_value = spr_addProduct @Description = N 'Új termék'. @IdProd = @IdProd OUTPUT

IF @return_value = 0 BEGIN PRINT 'A tétel sikeresen hozzáadva' SELECT @IdProd mint N '@IdProd' END

ELSE BEGIN PRINT 'Hiba történt a termékek hozzáadásakor:' SELECT 'Return Value' = @ return _ value END

A független munka feladata: Tárolt eljárások létrehozása, amelyek végrehajtják a következő műveleteket:

Visszaadja a megadott terméket tartalmazó összes megrendelés listáját (az IdProd segítségével) Meghatározza az ügyfelek számát, amelyeknek nincs megrendelése. Az eredményt vissza kell küldeni a kimeneti paraméteren keresztül. Egy adott kliensről az adatbázisból származó adatok eltávolítása (az IdCust segítségével). Ha ehhez az ügyfélhez kapcsolódó rekordok (megrendelések) vannak, a törlést törölni kell. A visszatérési értéknek meg kell határoznia a művelet sikerét.

Munkám célja a családfő nevének értelmezése, annak megismerése, hogy miként éltek, mi az őseim, és hány szakmában voltak. Feladatok: megtudja, ki vagyok az őseim; Hogy megállapítsák, hol éltek és mit tettek; hogy tanulmányozzák életrajzukat, a családom nevét.

Kapcsolódó cikkek