Executarea procedurilor stocate (componenta motorului bazei de date)

Dacă nu specificați numele procedurii stocate personalizat, motorul bazei de date caută procedura în ordinea următoare.

  • Schema sys a bazei de date curente.
  • Schema implicită a programului de apel când este executată într-un pachet sau în SQL dinamic. Dacă numele procedurii nespecificate este prezent în corpul definiției unei alte proceduri, următoarea coadă este căutată în schema care conține această altă procedură. Pentru mai multe informații despre schemele implicite, consultați Divizarea schemelor personalizate.
  • Schema dbo a bazei de date curente.






Dacă orice procedură stocată creată de utilizator are același nume ca procedura stocată în sistem, procedura utilizată stocată nu va fi executată în niciun caz utilizând numele nespecificat fără a specifica numele schemei. Pentru mai multe informații, consultați Crearea procedurilor stocate (Engine Database Engine).

Dacă argumentele sunt stocate în procedura stocată, puteți specifica valorile argumentelor.

Valoarea furnizată trebuie să fie o constantă sau o variabilă; Nu puteți specifica un nume de funcție ca valoare de argument. Variabilele pot fi utilizator sau sistem, de exemplu @@ spid.

Următoarele exemple arată transferul valorii argumentului la procedura stocată uspGetWhereUsedProductID. Procedura așteaptă valori pentru două argumente de intrare: codul produsului și data. Exemplele arată cum se transmit constantele și variabilele ca argumente și cum se utilizează o variabilă pentru a trece valoarea unei funcții.







Dacă doriți să specificați parametrii într-o altă ordine decât cea definită în procedura stocată, acestea trebuie să fie numite. Pentru informații suplimentare, consultați Specificarea unui nume de argument.

Pentru a specifica un parametru care returnează valoarea programului programat, utilizați cuvântul cheie OUTPUT. Pentru informații suplimentare, consultați Specificarea direcției unui parametru.

Specificând ordinea argumentelor

Când specificați argumente în formularul @ argument = value, le puteți specifica în orice ordine. De asemenea, puteți omite argumentele pentru care sunt prezentate valorile implicite. Dacă specificați un argument în formularul @ argument = value, trebuie să furnizați toate argumentele ulterioare în același mod. Dacă argumentele nu sunt specificate în formatul @ argument = value. trebuie să le specificați în ordinea specificată pentru instrucțiunea CREATE PROCEDURE.

Când execută o procedură stocată, serverul respinge orice argumente care nu sunt incluse în lista de argumente în timpul creării procedurii. Orice argument transmis de o referință (care trece în mod explicit numele argumentului) nu este acceptat dacă numele argumentului nu se potrivește.

Utilizarea valorilor implicite pentru argumente

Deși este posibil să se omite argumentele pentru care sunt furnizate valori implicite, puteți trunchia numai lista de argumente. De exemplu, atunci când există cinci argumente în procedura stocată, puteți omite a patra și a cincea, dar nu puteți sări peste a patra și include a cincea, cu excepția cazului în care argumentele au fost furnizate în formatul de valoare @ argument =.

Valoarea implicită specificată pentru un argument într-o procedură stocată este utilizată atunci când:

  • nici o valoare nu este specificată pentru argumentul executării procedurii memorate;
  • ca valoare pentru argument, este specificat cuvântul cheie DEFAULT.






Articole similare

Trimiteți-le prietenilor: