-SQL, eljárási kiterjesztések

Számos korlátozások esetleg más Transact-SQL a csomagban. A legfontosabb ezek közül az, hogy ha a csomag tartalmaz leíró adatokat az utasításokat létrehozása céljából, CREATE ELJÁRÁS vagy CREATE TRIGGER, akkor nem tartalmaz semmilyen egyéb nyilatkozatokat. Más szóval, egy ilyen nyilatkozatot kell az egyetlen állítás csomagot. Kézi adatok meghatározása nyelv választja el GO utasításokat.

Egyes eljárási-SQL nyelv kiterjesztést külön figyelembe véve a következő részekben.

használati egység

Utasítás blokk állhat egy vagy több utasítás-SQL nyelv. Minden egység kezdődik BEGIN nyilatkozatot, és véget ér a tanítás END. az alábbiak szerint:

Az egység lehet helyezni az IF kijelentés, hogy attól függően, hogy az adott körülmények lehetővé teszik a végrehajtását egy vagy több utasítást.

utasítást, ha

IF-SQL nyelv tanítása megegyezik a névadó útmutató, támogatja szinte az összes programozási nyelven. IF utasítás végzi egy vagy több alkotóeleme egy blokk nyilatkozatok, ha egy logikai kifejezés követi az IF kulcsszót, igazat ad vissza (igaz). Ha az IF utasítás tartalmazza else. Ezután, feltéve, hogy a logikai kifejezés hamis értékkel tér vissza (hamis), a második csoport utasításait hajtja végre.

Az alábbiakban egy példát egy feltételes IF nyilatkozata:

Ez a példa mutatja a használatát az utasítás blokk belül IF utasítást. Az alábbi kifejezés IF nyilatkozata:

true értékkel tér vissza (igaz) az adatbázis SampleDb. Ezért az utasítást hajtja végre PRINT, tagja a az IF utasítás. Figyeljünk arra, hogy ebben a példában egy allekérdezés vissza a sorok számát (az aggregált funkció COUNT), megfelelő ajánlatok WHERE (ProjectNumber = „p1”).

A felhasználói utasítások ELSE IF a példában két utasítást: nyomtatás, és a SELECT. Ezért elvégzésére ezeket az utasításokat kell mellékelni a blokk közötti kulcsszavak kezdetét és végét. (Útmutató PRINT olyan eljárási kiterjesztés és visszaadja a felhasználó által meghatározott üzenetet.)

utasítás MÍG

MÍG utasítást hajt végre egy vagy több fogoly a blokk nyilatkozatok idővel, míg a (miközben) logikai kifejezés igaz értékkel tér vissza (igaz), azaz Ez lehetővé teszi, hogy hozzon létre egy hurok. Más szóval, ha a kifejezés értéke igaz, akkor az utasítás végrehajtásakor vagy utasítás blokk, ami után a ellenőrzést végzünk ismét kifejezést. Ez a folyamat ismétlődik, amíg a kifejezés nem tér vissza HAMIS (hamis).

Blokk belül MÍG utasítás tartalmazhat egy vagy két opcionális utasításokat szabályozására használható utasítások végrehajtását a blokkon belül: BREAK vagy folytathatja. BREAK utasítás leállítja a végrehajtás a hurok, és elkezdi végrehajtani utasításokat követően azonnal ezt a blokkot. A continue utasítás leállítja a végrehajtását csak az aktuális iteráció és elkezdi végrehajtani a következő ismétlés.

Az alábbi példa bemutatja a használatát AMÍG utasítás:

Ebben a példában a költségvetés valamennyi projekt 10% -kal nőtt, amíg a teljes költségvetés nem haladja meg a $ 500 000 teljesítésére azonban a berendezés leáll, akkor is, ha ez kevesebb, mint $ 500,000 teljes költségvetés, kivéve, ha a költségvetés egyik projektek meghaladja a $ 240,000.

lokális változók

A lokális változók fontos eljárási mellék-SQL nyelv. Ezek tárolására használt értékek bármilyen tételekben és rutinok. Helyi, ezek az úgynevezett, az az oka, hogy csak akkor használható a csomagban, amelyben bejelentették őket. (A Database Engine támogatja a globális változók, amelyek már korábban tárgyaltuk.)

Az összes helyi csomag deklaráljuk a DECLARE nyilatkozatot. (A szintaxisa ezt az utasítást adja az alábbi példában) meghatározása változó áll a változó nevét és annak adattípus. Nevek a lokális változók a csomagban mindig előtaggal @. Hozzárendelése a helyi változó értékek végezzük:

egy speciális formája a SELECT;

A SET utasítást;

DECLARE utasításokat közvetlenül a = jel (például, @extra_budget pénz = 1500).

Az első két módszer a hozzárendel egy értéket egy helyi változót a következő példa:

Csomag utasítást ebben a példában kiszámítja az átlagos költségvetésének az összes projekt, és összehasonlítja a kapott értéket a költségvetési p1 projekt. Ha a projekt költségvetésének p1 kevesebb, mint az átlagos költségvetéseket, annak értéke nőtt az értéke egy helyi változó @extra_budget.

Vegyes eljárási utasítások

Eljárási bővítmények-SQL nyelv és tartalmazza az alábbi utasításokat:

RETURN utasítás ugyanazt a feladatot látja a csomagot, és a használati belül szünetet, míg hurok. Más szóval, az utasítás RETURN leállítja a végrehajtás a csomagot, és elindul a végrehajtás az első utasítás a következő csomagot.

GOTO utasítás átadja a vezérlést, amikor a Transact-SQL csomag egy csomagban lévő kijelölt marker. RAISEERROR útmutató megjeleníti a felhasználó által definiált hibaüzenetet, és beállít egy zászló rendszerhiba. A hiba számát a felhasználó által meghatározott üzenetet, hogy több mint 50.000, a Az összes hiba száma kisebb vagy egyenlő, mint 50000 rendszer határozza meg, és fenntartva eleme a Database Engine. Az értékek a hiba számok kerülnek a globális változó @@ hiba.

Waitfor nyilatkozat meghatározza késleltetési időtartam (DELAY paraméter), vagy egy adott időpontban (TIME paraméter), amelyre a rendszernek meg kell várni, mielőtt végre a következő csomag utasításokat. A szintaxis ez az állítás a következő:

DELAY paraméter meghatározza adatbázis rendszer várja meg, amíg a meghatározott időtartam lejár, és TIME paraméter azt az időpontot jelöli, az egyik érvényes formátumok, amelyek várnak. Paraméter timeout. majd egy timeout érv, ez határozza meg az időt ezredmásodpercben, melynek során meg kell várni az érkezését üzenet a sorban.

Kivételkezelés keresztül TRY utasítás, elkapni és dobja

Kivétel (kivétel) nevezik a problémát (általában egy hiba), amely nem teszi lehetővé a program folytatását. Futó program nem tud tovább végezni hiánya miatt szükséges információk kezelni a hiba ebben része a programnak. Ezért a hiba feldolgozási feladatot át egy másik része a programnak.

A szerepe TRY utasítás kivételt fogott. (Végrehajtása óta ez a folyamat általában csak néhány utasítás, általánosan alkalmazható „egységnyi TRY”, ahelyett, hogy „User TRY”). Ha a blokk TRY kivétel történik, a rendszer alkatrész, úgynevezett kivételkezelőt. Ez ad egy kivételt feldolgozni más részein a programot. Ez a része a program által megadott kulcsszó és ezért nevezik fogás fogási blokk.

Kivételkezelés segítségével TRY FOGÁSOKRA utasításokat, és egy közös módszert kezelési hibák használják a modern programozási nyelvek, mint a C # és Java.

Kivételkezelés segítségével try és catch blokkot ad a programozó egy csomó előnye, beleértve a következőket:

kivételek olyan ügyes módja annak, hogy hibákat a túlzsúfoltság veszélye nélkül a kód további utasításokat;

kivételek mechanizmust biztosít előre hibajelzés, ahelyett, hogy a káros jeleket;

A programozó láthatjuk a kivételt, és ellenőrizze azokat a fordítási folyamatot.

A használati utasításban TRY, elkapni és dobja kezelésére kivételek látható az alábbi példát:

Ez a példa azt mutatja, hogyan kell végrehajtani, kivéve utasítások feldolgozására egy csomagot, és végre visszagörgetésére teljesítménye az egész csoport utasításait, ha hiba történik. Kísérlet, hogy végre egy csomagot, ahogy a példa sikertelen lesz, és az eredmény a következő üzenet:

-SQL, eljárási kiterjesztések

kódfuttatást példa a következő. A sikeres befejezése az első INSERT utasítás megkísérelte végrehajtását a második utasítás hibát okoz a hivatkozási integritást megsértését. Mivel mindhárom utasítások vannak zárva TRY blokk, van egy kivétel, hogy az egész blokk és kivételkezelőt elkezdi végrehajtani catch blokkban. kódfuttatást ebben a blokkban teljesít visszaállítását végrehajtását minden utasítást a try blokkban, és egy üzenetet jelenít meg. Ezután THROW utasítás visszatér végrehajtása a hívónak. Ennek következtében mindez a tartalmát az Employee tábla nem lehet megváltoztatni.

-SQL nyilatkozata - BEGIN tranzakció COMMIT tranzakció és ROLLBACK kezdődik, és rögzíteni tekercsek vissza a tranzakciót, ill. Az az ügylet tárgyát, általában, és ezeket az utasításokat, különösen azt figyelembe kell venni egy későbbi cikkben.

Kapcsolódó cikkek