SQL Server tárolt eljárás paraméterek
az előző bemutató, megtanultuk, hogyan kell létrehozni egy egyszerű tárolt eljárás, amely lezárja a SELECT utasítás. Amikor ezt a tárolt eljárást hívja, egyszerűen futtatja a lekérdezést, majd visszaadja az eredményhalmazt.
ebben a bemutatóban kiterjesztjük a tárolt eljárást, amely lehetővé teszi egy vagy több érték átadását. A tárolt eljárás eredménye a paraméterek értékei alapján változik.,Ami egy tárolt eljárás egy paraméter
A következő lekérdezés egy termék listát a products táblázat a minta adatbázis:
létrehozhat egy tárolt eljárás, hogy a pakolások ezt a lekérdezés segítségével, hogy a CREATE PROCEDURE nyilatkozat:
Code language: SQL (Structured Query Language) (sql)
Azonban ez alkalommal adjunk hozzá egy paraméter, hogy a tárolt eljárás alatt találja azokat a termékeket, akinek a lista árak nagyobb mint a bemeneti ár:
ebben A példában:
- Első, adtunk egy paraméter neve
@min_list_price, hogy auspFindProductstárolt eljárás., Minden paraméternek a@jellel kell kezdődnie. AAS DECIMALkulcsszavak adja meg a@min_list_priceparaméter adattípusát. A paramétert a nyitó-és záróelemekkel kell körülvenni. - Second, we used
@min_list_priceparameter in theWHEREaSELECTutasítás azon termékek szűrésére, amelyek listaárai nagyobbak vagy egyenlőek a@min_list_price.,
Végrehajtó egy tárolt eljárás egy paraméter
végrehajtani a uspFindProducts tárolt eljárás, át egy érv, hogy a következők szerint:
Code language: SQL (Structured Query Language) (sql)
A tárolt eljárás visszaadja az összes olyan termékek, amelyek lista ára egyenlő vagy nagyobb, mint 100.,
Ha az argumentumot 200-ra változtatja, akkor egy másik eredménykészletet kap:
Code language: SQL (Structured Query Language) (sql)
tárolt eljárás több paraméterrel
a tárolt eljárások egy vagy több paramétert is igénybe vehetnek. A paramétereket vesszővel választják el.,iv.> tárolt eljárás hozzáadásával még egy paraméter neve @max_list_price, hogy:
Ha a tárolt eljárás módosított sikeresen lehet végrehajtani átadásával két érv, egy-egy @min_list_price, a másik a @max_list_price:
Code language: SQL (Structured Query Language) (sql)
Az alábbi azt mutatja, hogy a kimenet:
A neve paraméterek
ha a tárolt eljárás, több paraméterek, jobb, ha többet egyértelmű, hogy végre a tárolt eljárások segítségével nevű paraméterek.,
például a következő utasítás végrehajtja a uspFindProducts tárolt eljárást a @min_list_priceés @max_list_price:
Code language: SQL (Structured Query Language) (sql)
a a tárolt eljárás ugyanaz, azonban a kijelentés nyilvánvalóbb.
Szövegparaméterek létrehozása
a következő utasítás a @name paramétert karakterláncparaméterként adja hozzá a tárolt eljáráshoz.,
a WHERE záradék a SELECT nyilatkozatot adtunk a következő feltétel:
Code language: SQL (Structured Query Language) (sql)
ezzel, a tárolt eljárás visszatér a termékek, amelyek lista árak a tartomány min max lista árak, valamint a termék nevét is tartalmazzák, egy darab sms-t, hogy adja át.,
Ha a tárolt eljárás megváltozott sikeresen lehet végrehajtani a következőképpen:
ebben A nyilatkozatban, használjuk a uspFindProducts tárolt eljárás, hogy megtalálja a terméket, akinek a lista árak a tartományban 900, 1000, illetve azok nevét tartalmazza azt a szót, Trek.,
a következő kép a kimenetet mutatja:
opcionális paraméterek létrehozása
a uspFindProducts tárolt eljárás, meg kell felelnie mind a három érvet megfelelő három paramétert.
az SQL Server lehetővé teszi a paraméterek alapértelmezett értékeinek megadását, így a tárolt eljárások hívásakor kihagyhatja a paramétereket az alapértelmezett értékekkel.,
lásd a következő tárolt eljárást:
ebben a tárolt eljárásban a 0 alapértelmezett értékét a @min_list_price paraméter és 999,999 alapértelmezett értékeként a @max_list_price paraméter.,
Once the stored procedure is compiled, you can execute it without passing the arguments to @min_list_price and @max_list_price parameters:
Code language: SQL (Structured Query Language) (sql)
In this case, the stored procedure used 0 for @min_list_price parameter and 999,999 for the @max_list_price parameter when it executed the query.,
a @min_list_price és @max_list_price a paramétereket opcionális paramétereknek nevezzük.
természetesen az argumentumokat az opcionális paraméterekre is átadhatja., Például, a következő nyilatkozatot kiadja az összes olyan termékek, amelyek lista árak nagyobb vagy egyenlő 6,000 a név tartalmazza azt a szót, Trek:
Code language: SQL (Structured Query Language) (sql)
a NULL, mint az alapértelmezett érték
a uspFindProducts tárolt eljárás régen 999,999 az alapértelmezett maximális lista ár. Ez nem robusztus, mert a jövőben előfordulhat, hogy olyan termékek vannak a listaárakkal, amelyek nagyobbak.,
Egy tipikus technika, hogy elkerüljék ezt használja a NULL az alapértelmezett érték a paraméterek:
a WHERE záradék, mi változott a feltétellel, hogy kezelni NULL érték @max_list_price paraméter:
Code language: SQL (Structured Query Language) (sql)
A következő nyilatkozatot végrehajtja a uspFindProducts tárolt eljárás, hogy megtalálja a terméket, akinek a lista árak nagyobb vagy egyenlő, mint 500 neveket tartalmaz, a word Haro.,
Code language: SQL (Structured Query Language) (sql)
ebben a bemutatóban megtanultad, hogyan kell létrehozni és végrehajtani a tárolt eljárásokat egy vagy több paraméterrel. Azt is megtanulta, hogyan hozhat létre opcionális paramétereket, és használhatja a NULL-t a paraméterek alapértelmezett értékeként.















