Muuttujien ja synonyymien ilmoittaminen ja määrittäminen
T-SQL:ssä muuttujat ovat muiden ohjelmointikielien tavoin objekteja, jotka mahdollistavat arvon tilapäisen tallennuksen myöhempää käyttöä varten. Olet jo käyttänyt muuttujia, kun olet käyttänyt niitä parametriarvojen välittämiseen tallennettuihin toimintosarjoihin ja funktioihin.
T-SQL:ssä muuttujat on määritettävä ennen kuin niitä voi käyttää. Niille voidaan määrittää arvo tai alustaa, kun ne on esitelty. Muuttujan ilmoittamiseen sisältyy nimen ja tietotyypin määrittäminen alla kuvatulla tavalla. Jos haluat määrittää muuttujan, sinun on käytettävä DECLARE-lauseketta.
--Declare and initialize the variables.
DECLARE @numrows INT = 3, @catid INT = 2;
--Use variables to pass the parameters to the procedure.
EXEC Production.ProdsByCategory @numrows = @numrows, @catid = @catid;
GO
Muuttujat on määritettävä samassa erässä, jossa niihin viitataan. Toisin sanoen kaikki T-SQL-muuttujat ovat paikallisia erän laajuudessa sekä näkyvyydessä että elinkaariaikana. Vain muut lausekkeet samassa erässä voivat nähdä muuttujan, joka on määritetty erässä. Muuttuja poistetaan automaattisesti, kun erä päättyy.
Muuttujien käyttäminen
Kun muuttuja on määritetty, se on alustettava tai sille on määritettävä arvo. Voit tehdä sen kolmella tavalla:
- SQL Server 2008:ssa tai uudemmassa versiossa muuttuja voidaan alustaa käyttämällä DECLARE-lauseketta.
- Missä tahansa SQL Server -versiossa voit määrittää yksittäisen (skalaariarvon) SET-lausekkeen avulla.
- Missä tahansa SQL Server -versiossa voit määrittää muuttujalle arvon SELECT-lausekkeella. Varmista, että SELECT-lauseke palauttaa täsmälleen yhden rivin. Tyhjä tulos jättää muuttujan alkuperäiseen arvoonsa. yli yksi tulos palauttaa viimeisen tuloksen.
Seuraavassa esimerkissä näytetään kolme tapaa määrittää ja määrittää arvoja muuttujille:
DECLARE @var1 AS INT = 99;
DECLARE @var2 AS NVARCHAR(255);
SET @var2 = N'string';
DECLARE @var3 AS NVARCHAR(20);
SELECT @var3 = lastname FROM HR.Employees WHERE empid=1;
SELECT @var1 AS var1, @var2 AS var2, @var3 AS var3;
GO
Tämä tuottaa seuraavat tulokset.
| var1 | var2 | var3 |
|---|---|---|
| 99 | merkkijono | Davis |
Juomaraha
Täydelliset ohjeet paikallisista muuttujista on T-SQL-viitedokumentaatiossa.
Synonyymien käyttäminen
SQL Serverin synonyymit tarjoavat menetelmän linkin tai aliaksen luomiseen samaan tietokantaan tai jopa toiseen SQL Server -esiintymään tallennettuun objektiin. Objekteja, joille voi määrittää synonyymeja, ovat taulukot, näkymät, tallennetut toimintosarjat ja käyttäjän määrittämät funktiot.
Synonyymeja käyttämällä etäobjekti voidaan näyttää paikalliselta tai antaa paikalliselle objektille vaihtoehtoinen nimi. Synonyymeja voidaan käyttää esimerkiksi abstraktiokerroksen tarjoamiseen asiakaskoodin ja koodin käyttämien todellisten tietokantaobjektien välille. Koodi viittaa objekteihin niiden aliaksien perusteella objektin todellisesta nimestä riippumatta.
Huomautus
Voit luoda synonyymin, joka osoittaa objektiin, jota ei vielä ole olemassa. Tätä kutsutaan lykättyksi nimien ratkaisuksi. SQL Server -moduuli ei tarkista todellisen objektin olemassaoloa, ennen kuin synonyymia käytetään suorituksen aikana.
Voit hallita synonyymeja käyttämällä tietojen määrityskielen (DDL) komentoja CREATE SYNONYM, ALTER SYNONYM ja DROP SYNONYM, kuten seuraavassa esimerkissä:
CREATE SYNONYM dbo.ProdsByCategory FOR TSQL.Production.ProdsByCategory;
GO
EXEC dbo.ProdsByCategory @numrows = 3, @catid = 2;
Jotta voit luoda synonyymin, sinulla on oltava LUO SYNONYYMI -käyttöoikeus sekä oikeus muuttaa rakennetta, johon synonyymi tallennetaan.
Huomautus
Jotta käyttäjä voi luoda synonyymin, hänellä on oltava LUO SYNONYYMI -käyttöoikeus ja joko omistaa tai hänellä on oltava ALTER-rakenteen käyttöoikeudet kohderakenteessa.
Synonyymi on tyhjä objekti, joka ratkaistaan lähdeobjektiin, kun siihen viitataan suorituksen aikana.