C# - Tárolt eljárás létrehozása

TransactSQL 13. rész

forráskód letöltése
Transact SQL nyelvet tárgyaló sorozatunkban most a tárolt eljárások létrehozásával foglalkozunk.
01.sql
Első lépés, hogy létrehozunk egy adatbázist ProcedureTest névvel, melyet a bemutatandó példákhoz használunk.
02.sql
Szükségünk lesz egy táblára is néhány adattal.
create table Table01
(
  value1 int,
  value2 varchar(10),
)
...
03.sql
Tárolt eljárás létrehozásához a create procedure utasítást kell használnunk. Ezt követően adhatjuk meg az eljárás nevét, majd az AS szó után jöhet a T-SQL kód, hogy milyen tevékenységet végezzen el a létrehozott eljárás. Létrehozhatunk ún. lokálisan és globálisan használható ideiglenes eljárásokat is. A lokális csak a saját kapcsolatban használható, azt kívülről más nem fogja tudni használni. Ezzel szemben a globális eljárást más kapcsolatból is használhatják. A lokális változatok automatikusan törlésre kerülnek a kapcsolat lezárásával, míg a globális eljárások csak akkor, ha már minden kapcsolat lezárásra került.
Lokális ideiglenes eljárás létrehozásához az eljárás név elé tegyünk egy # karaktert, míg a globálisnál kettő ## karaktert.
create procedure Procedure01
as
select 'Hello World!'
04.sql
Próbaként futtatjuk is az imént létrehozott tárolt eljárást, melyhez az Execute parancsot használjuk, amelynek a futtatandó tárolt eljárás nevét kell megadnunk.
execute Procedure01
05.sql
Tárolt eljárásnak természetesen paramétereket is adhatunk. Ezt az eljárás neve után tehetjük meg egy vesszővel elválasztott felsorolásban. A paraméter név mindig egy @ jellel kezdődik. A név után a paraméter típusát adhatjuk meg. Ha olyan paramétert szeretnénk megadni, melyen keresztül értéket is adnánk vissza, akkor használjuk a típus megadása után az OUTPUT jelzőt.
Az alábbi példában szereplő tárolt eljárás összeadja a paraméterében kapott két számot és ennek eredményét jeleníti meg.
create procedure Procedure02
  @a int,
  @b int
as
select convert(varchar(20), @a + @b)
06.sql
Próbáljuk is ki az imént létrehozott eljárást.
execute Procedure02 150, 50
07.sql
Több eljárásnak adhatunk azonos nevet is. Ezek között úgy tudunk különbséget tenni, hogy a név után pontosvesszővel megadunk egy sorszámot. Ennek ott lesz legnagyobb előnye, hogy ha törölni akarjuk az eljárásokat a DROP PROCEDURE utasítással, akkor elegendő megadni az eljárás nevét és annak összes változata törlésre kerül. Ha tehát az alábbi Procedure03 eljárásnak több változata is van, akkor a DROP PROCEDURE Procedure03 utasítással egy lépésben törölhetjük az összest.
create procedure Procedure03;1
as
select min(value1) as 'Minimum value1', max(value1) as 'Maximum value1'
from Table01
08.sql
Próbáljuk is ki az imént létrehozott eljárást, a név után itt se felejtsük el megadni a sorszámot.
execute Procedure03;1
09.sql
Példánk befejezéseképp töröljük a létrehozott SystemFuncTest adatbázist.
use Master
DROP DATABASE ProcedureTest
select 'Adatbázis törölve'

Transact SQL cikksorozat

Transact SQL Referencia - Transact SQL 1. rész
Transact SQL további belső változói - Transact SQL 2. rész
Dátumkezelés a Transact SQL-ben - Transact SQL 3. rész
Sztringkezelés a Transact SQL-ben - Transact SQL 4. rész
Folyamatvezérlés eszközei a Transact SQL-ben - Transact SQL 5. rész
Összesítő függvények - Transact SQL 6. rész
Adatbázisok létrehozása, törlése - Transact SQL 7. rész
Adatbázis módosítás lehetőségei - Transact SQL 8. rész
Táblák létrehozása - Transact SQL 9. rész
Táblák módosítása, törlése - Transact SQL 10. rész
Rendszer funkciók - Transact SQL 11. rész
Adatkonvertálási lehetőségek - Transact SQL 12. rész

Tárolt eljárás létrehozása - TransactSQL 13. rész

Triggerek kezelése - Transact SQL 14. rész
Indexek létrehozása - Transact SQL 15. rész
Függvények definiálása - Transact SQL 16. rész
Függvények felüldefiniálása és törlése - Transact SQL 17. rész
Szabályok létrehozása - Transact SQL 18. rész
Alapértelmezett értékek megadása - Transact SQL 19. rész
Nézet táblák létrehozása - Transact SQL 20. rész
Nézettáblák módosítása - Transact SQL 21. rész
Adatbázis és tranzakciós napló mentése - Transact SQL 22. rész
Elmentett adatbázis és tranzakciós napló visszaállítása - Transact SQL 23. rész
Full-Text Catalog létrehozása, használata - Transact SQL 24. rész
Full-Text Catalog további lehetőségei - Transact SQL 25. rész
Tranzakció-kezelés az MS SQL-ben - Transact SQL 26. rész
Tranzakció-kezelés az MS SQL-ben - Transact SQL 27. rész
SET parancsok - Transact SQL 28. rész