Procedurile stocate SQL Server pot avea o mulțime de parametri de intrare și ieșire (mai precis, până la 2100 de unități).
În instrucțiunea CREATE PROCEDURE, puteți să listați parametrii transmiși procedurii memorate, specificându-le direct după numele lor. Fiecare dintre parametri trebuie să înceapă cu simbolul @. Pentru o procedură stocată, aceasta este o variabilă locală. La fel ca toate variabilele locale, parametrii trebuie să fie declarați cu tipuri de date valide. Atunci când apelați o procedură stocată, trebuie să fie specificați toți parametrii (dacă, desigur, unii dintre ei nu au valori implicite).
CREATE PROCEDURE CategoryGet
SELECT ProductCategoryName, ProductCategoryDescription FROM dbo.ProductCategory
WHERE ProductCategoryName = @CategorieName, *
La executarea următorului cod de program, procedura stocată este trecut ca parametru literalului "Kite", care este înlocuit ca o variabilă locală în clauza WHERE a interogării SELECT:
EXEC CategoryGet 1 Kite ';
Rezultatul executării procedurii stocate:
Kite o varietate de zmee, de la simplu
cascadorie, chineză, la noutate
Dacă o procedură stocată este trecută de mai mulți parametri, atunci ei trebuie să păstreze ordinea specificată în definiție. De asemenea, puteți trece parametrii în orice ordine, dar specificați numele acestora. Dacă aceste două metode sunt amestecate, atunci după prima indicație explicită a numelui parametrului, toate celelalte trebuie să utilizeze aceeași metodă.
Următoarele trei exemple demonstrează apelurile la procedurile stocate și transmiterea parametrilor utilizând ordinea și denumirile originale:
EXEC StoredProcedure @Parameterl = n,
@ Parametru2 = 'l 1;
EXEC StoredProcedure n, 'n';
EXEC StoredProcedure n, @ Parametru2 = 'n';
Valorile implicite ale parametrilor
Când apelați o procedură memorată, trebuie să specificați toți parametrii acesteia, cu excepția celor pentru care au fost definite valorile implicite. În definiția unei proceduri stocate, valorile implicite sunt determinate prin adăugarea semnului egal și a valorii la numele parametrului: CREATE PROCEDURE proc_name (
@ variabilă data_type = valoare implicită);
CREATE PROCEDURE pProductCategory_Fetch2 (
SELECT ProductCategoryName, ProductCategoryDescription DIN dbo.ProductCategory UNDE ProductCategoryName = @Search SAU @Search IS NULL;
Dacă @@ RowCount = 0 RAISERROR (
EXEC pProductCategory_Fetch 'OBX';
Se va obține următorul rezultat:
În cazul în care procedura pProductCategory_Fetch este efectuată fără un parametru explicit, variabila @Search atribuie o valoare implicită - nulă, ceea ce face ca adevărata îndeplinirea condiției de clauza WHERE pentru toate rândurile de masă ProductCategory.
Accesorii accesorii pentru călătorie
Rezervați cărți Outer Banks
Îmbrăcăminte OBX tricouri, pălării, jachete
Kite o varietate de zmee, de la simplu
cascadorie, la chinezi, la materialul de noutate Materiale de construcții Kite
Contexte și lecții de cascadorii video,
și clipurile Outer Banks