Articles

Server SQL Proceduri Stocate Parametrii

În tutorialul anterior, ați învățat cum să creeze o simplă procedură stocată care se infasoara un SELECT declarație. Când apelați această procedură stocată, pur și simplu rulează interogarea și returnează un set de rezultate.în acest tutorial, vom extinde procedura stocată care vă permite să îi transmiteți una sau mai multe valori. Rezultatul procedurii stocate se va schimba pe baza valorilor parametrilor.,Crearea unei proceduri stocate cu un parametru

următoarea interogare returnează o listă de produse de la products tabel în baza de date exemplu:

puteți crea o procedură stocată care se infasoara această interogare folosind CREATE PROCEDURE declarație:

Code language: SQL (Structured Query Language) (sql)

cu toate Acestea, de data aceasta putem adăuga un parametru pentru proceduri stocate pentru a gasi produsele ale căror prețuri de listă sunt mai mari decât prețul de intrare:

În acest exemplu:

  • în Primul rând, am adăugat un parametru numit @min_list_price la uspFindProducts procedură stocată., Fiecare parametru trebuie să înceapă cu semnul @. Cuvintele cheieAS DECIMAL specifică tipul de date al parametrului@min_list_price. Parametrul trebuie să fie înconjurat de parantezele de deschidere și închidere.
  • în al Doilea rând, am folosit @min_list_price parametru în WHERE clauza de SELECT declarație pentru a filtra numai produse a căror listă prețurile sunt mai mari decât sau egal cu @min_list_price.,

Executa o procedură stocată cu un parametru

Pentru a executa uspFindProducts proceduri stocate, te trece un argument pentru asta, după cum urmează:

Code language: SQL (Structured Query Language) (sql)

procedura stocată returnează toate produsele ale căror prețuri de listă sunt mai mari decât sau egale cu 100.,

Dacă vă schimbați argument la 200, veți primi un alt set de rezultate:

Code language: SQL (Structured Query Language) (sql)

Crearea unei proceduri stocate cu mai mulți parametri

proceduri Stocate pot avea unul sau mai mulți parametri. Parametrii sunt separați prin virgule.,iv> proceduri stocate, adăugând un parametru numit @max_list_price pentru:

Odată ce procedura stocată este modificat cu succes, puteți executa prin trecerea două argumente, unul pentru @min_list_price și cealaltă pentru @max_list_price:

Code language: SQL (Structured Query Language) (sql)

următoarele prezinta ieșire:

Folosind parametri numit

În cazul procedurilor stocate avea mai multe parametri, este mai bine și mai clar pentru a executa proceduri stocate folosind numele parametrilor.,

De exemplu, următoarea declarație execută uspFindProducts proceduri stocate folosind parametri numit @min_list_priceși @max_list_price:

Code language: SQL (Structured Query Language) (sql)

rezultatul procedură stocată este același cu toate acestea, situația este mult mai evident.

crearea parametrilor de text

următoarea declarație adaugă parametrul @name ca parametru șir de caractere la procedura stocată.,

În WHERE clauza de SELECT declarație, am adăugat următoarele condiții:

Code language: SQL (Structured Query Language) (sql)

De a face acest lucru, procedura stocată returnează produsele ale căror prețuri de listă sunt în intervalul dintre min și max prețurile de listă și nume de produse conțin, de asemenea, o bucată de text pe care le trece în.,

Odată ce procedura stocată este modificat cu succes, puteți executa după cum urmează:

În această declarație, am folosit uspFindProducts procedură stocată pentru a găsi produsul a cărui listă prețurile sunt în intervalul de 900 și 1.000 și numele lor conțin cuvântul Trek.,

imaginea De mai jos prezinta ieșire:

Crearea parametri opționali

Când executați uspFindProducts proceduri stocate, trebuie să treci toate cele trei argumente corespunzătoare celor trei parametri.SQL Server vă permite să specificați valorile implicite pentru parametri, astfel încât atunci când apelați proceduri stocate, puteți sări peste parametrii cu valori implicite.,

a se Vedea următoarele proceduri stocate:

În această procedură stocată, am atribuit 0 ca valoare implicită pentru @min_list_price parametru și 999,999 ca valoare implicită pentru @max_list_price parametru.,

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.,

@min_list_price și @max_list_price parametri se numesc parametri opționali.desigur ,puteți transmite argumentele și parametrilor opționali., De exemplu, următoarea declarație returnează toate produsele ale căror prețuri de listă sunt mai mari sau egale cu 6,000 și nume conțin cuvântul Trek:

Code language: SQL (Structured Query Language) (sql)

Utilizarea NUL ca valoare implicită

În uspFindProducts proceduri stocate, am folosit 999,999 ca implicit maxim de prețul de listă. Acest lucru nu este robust, deoarece în viitor este posibil să aveți produse cu prețuri de listă care sunt mai mari decât atât.,

Un tipic tehnica pentru a evita acest lucru este de a utiliza NULL ca valoare implicită pentru parametrii:

În WHERE clauza, am schimbat condiția să se ocupe de NULL valoare @max_list_price parametru:

Code language: SQL (Structured Query Language) (sql)

următoarea declarație execută uspFindProducts procedură stocată pentru a găsi produsul a cărui listă de prețuri sunt mai mari sau egale cu 500 și nume conțin cuvântul Haro.,

Code language: SQL (Structured Query Language) (sql)

În acest tutorial, ai învățat cum de a crea și de a executa proceduri stocate cu unul sau mai mulți parametri. De asemenea, ați învățat cum să creați parametri opționali și să utilizați NULL ca valori implicite pentru parametri.