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 auspFindProducts
tárolt eljárás., Minden paraméternek a@
jellel kell kezdődnie. AAS DECIMAL
kulcsszavak adja meg a@min_list_price
paraméter adattípusát. A paramétert a nyitó-és záróelemekkel kell körülvenni. - Second, we used
@min_list_price
parameter in theWHERE
aSELECT
utasí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.