Articles

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 a uspFindProducts 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 a SELECT 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.