SQL Server Tallennettu Menettely, jossa Parametrit


By: Greg Robidoux
Yhteenveto

todellista valtaa tallennettu menettelyt on kyky välittää parametreja ja annetaan tallennettu menettely käsittelemään erilaisia pyyntöjä, jotka on tehty. Tässä ohdakkeessa tarkastelemme parametriarvojen siirtämistä tallennettuun menettelyyn.

Selitys

Aivan kuten sinulla on mahdollisuus käyttää parametrit SQL-koodin voit alsosetup tallennetut menettelyjä hyväksyä yhden tai useamman parametrin arvoja. Allexamples käyttää adventureworks-tietokantaa.,

Luo SQL Tallennettu Menettely, jossa Parametrit

  1. – luo tallennettu menettely, jossa parametrit käyttämällä seuraavaa syntaksia:
  2. LUODA MENETTELY dbo.uspGetAddress @City nvarchar(30)
  3. Ks. lisätietoja ja esimerkkejä

SQL Server Kyselyn muuttua Tallennettu Menettely

Alla on kysely, jolla haluamme luoda tallennettu menettely.

USE AdventureWorksGOSELECT * FROM Person.AddressGO

ajatus on luoda tallennettu menettely, jossa Kaupunki on siirtynyt thestored menettely, joten se voi luoda dynaamisia tuloksia., Tämä voidaan tehdä seuraavasti usinga muuttuja. Jos käytämme alla olevaa koodia, se palauttaa vain tulokset NewYork.

USE AdventureWorksGODECLARE @City nvarchar(30)SET @City = 'New York'SELECT * FROM Person.AddressWHERE City = @CityGO

voisimme käyttää tätä lähestymistapaa ja pitää päivittää @City muuttuja, mutta on isa parempi tapa tehdä tämä luomalla tallennettu menettely.

Luo SQL Server Tallennettu Menettely, jossa Yksi Parametri

tässä esimerkissä kyselyn Henkilö.Osoite taulukko AdventureWorksdatabase, mutta sen sijaan saada takaisin kaikki tiedot meidän tulee rajoittaa se vain particularcity., Tämä esimerkki olettaa, että tulee tarkka ottelu kaupungin arvo on mennyt.

USE AdventureWorksGOCREATE PROCEDURE dbo.uspGetAddress @City nvarchar(30)ASSELECT * FROM Person.AddressWHERE City = @CityGO

soittaa tämä tallennettu menettely, me suorita se seuraavasti:

EXEC dbo.uspGetAddress @City = 'New York'

Poistamalla Tallennetut Menettely

Jos olet luonut tallennetut menettely ja haluat luoda storedprocedure, jolla on sama nimi, voit poistaa sen käyttämällä followingbefore yrittää luoda sen uudelleen.

USE AdventureWorksGODROP PROCEDURE dbo.uspGetAddressGO

Jos yrität luo tallennetut menettely ja se on jo olemassa, saat virheilmoituksen.,

Msg 2714, Taso 16, Valtion 3, Menettely uspGetAddress, Line 1
Siellä on jo kohde nimeltä ’uspGetAddress’ tietokantaan.

SQL Server tallennettu menettely parametrilla käyttäen Wildcard

voimme myös tehdä saman asian, mutta anna käyttäjien antaa meille lähtöpisteen etsiä tietoja.

tässä voimme muuttaa ”=” samankaltaiseksi ja käyttää ” % ” – jokerikorttia.

tätä voi ajaa seuraavasti löytääkseen kaikki kaupungit, jotka aloittavat uudesta.,

EXEC dbo.uspGetAddress @City = 'New'

SQL Server Tallennettu Menettely Virhe, Kun Parametri Ei Läpäissyt

sekä menettelyn esimerkeissä oletetaan, että parametrin arvo on alwaysbe kulunut. Jos yrität suorittaa menettely ilman kulkee parametervalue saat virheilmoituksen, kuten seuraavat:

EXEC dbo.uspGetAddress
– Msg-201, Taso 16, Tila 4, Menettely uspGetAddress, Line0
Menettely tai toiminto ’uspGetAddress’ odottaa parametri ’@City’, joka ei sisälly toimitukseen.,

SQL Server Tallennettu Menettely käyttäen NULL Oletuksena Parametri

useimmissa tapauksissa, se on aina hyvä käytäntö on siirtää kaikki parametriarvot,mutta joskus se ei ole mahdollista. Joten tässä esimerkissä käytämme NULL optionto avulla et läpäise parametrin arvo. Jos me luoda ja ajaa tämän storedprocedure, koska se ei palauta mitään tietoja, koska se etsii tahansa Cityvalues, että sama NULL.

USE AdventureWorksGOCREATE PROCEDURE dbo.uspGetAddress @City nvarchar(30) = NULLASSELECT *FROM Person.AddressWHERE City = @CityGO

Jos me suorita seuraava se toimii, mutta tietoja ei voida palauttaa.,

EXEC dbo.uspGetAddress

voisimme muuttaa tätä tallennettu menettely ja käyttää ISNULL toiminto saada aroundthis. Joten, jos arvo on kulunut se käyttää arvoa kapea resultset ja jos arvo ei ole kulunut, se palauttaa kaikki tietueet. (Huomautus: Jos kaupunkipalstalla on mitättömät arvot tämä ei sisällä näitä arvoja. Sinun täytyy lisätä lisää logiikkaa City IS NULL)

nyt, jos suoritamme alla olevan komennon, kaikki tiedot palautetaan taulukosta.,

EXEC dbo.uspGetAddress

Luo SQL Server Tallennettu Menettely, jossa on Useita Parametreja,

Asettaminen useita parametreja on erittäin helppo tehdä. Sinun tarvitsee vain luetella parametri ja tietotyyppi erotettu pilkku kuten alla.

Voit suorittaa tämän voit tehdä mitä tahansa seuraavista:

Viimeisin Päivitys: 4/3/2020

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *