Deklarer og tilordne variabler og synonymer
I T-SQL, som med andre programmeringsspråk, er variabler objekter som tillater midlertidig lagring av en verdi for senere bruk. Det har allerede oppstått variabler når du brukte dem til å sende parameterverdier til lagrede prosedyrer og funksjoner.
I T-SQL må variabler deklareres før de kan brukes. De kan tilordnes en verdi, eller initialisert, når de deklareres. Deklarering av en variabel inkluderer å oppgi et navn og en datatype, som vist nedenfor. Hvis du vil deklarere en variabel, må du bruke DECLARE-setningen.
--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
Variabler må deklareres i samme gruppe som de refereres til. Med andre ord er alle T-SQL-variabler lokale i omfang til bunken, både i synlighet og levetid. Bare andre setninger i samme gruppe kan se en variabel deklarert i bunken. En variabel ødelegges automatisk når bunken avsluttes.
Arbeide med variabler
Når du har deklarert en variabel, må du initialisere den eller tilordne den en verdi. Du kan gjøre dette på tre måter:
- I SQL Server 2008 eller nyere kan du initialisere en variabel ved hjelp av DECLARE-setningen.
- I en hvilken som helst versjon av SQL Server kan du tilordne én enkelt (skalar) verdi ved hjelp av SET-setningen.
- I en hvilken som helst versjon av SQL Server kan du tilordne en verdi til en variabel ved hjelp av en SELECT-setning. Pass på at SELECT-setningen returnerer nøyaktig én rad. Et tomt resultat lar variabelen være igjen med den opprinnelige verdien. mer enn ett resultat vil returnere det siste resultatet.
Følgende eksempel viser de tre måtene å deklarere og tilordne verdier til variabler på:
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
Dette genererer følgende resultater.
| var1 | var2 | var3 |
|---|---|---|
| 99 | streng | Davis |
Tips
Hvis du vil ha fullstendig veiledning om lokale variabler, kan du se referansedokumentasjonen for T-SQL.
Arbeide med synonymer
Synonymer i SQL Server gir en metode for å opprette en kobling, eller et alias, til et objekt som er lagret i samme database eller til og med i en annen forekomst av SQL Server. Objekter som kan ha synonymer definert for dem, omfatter tabeller, visninger, lagrede prosedyrer og brukerdefinerte funksjoner.
Synonymer kan brukes til å få et eksternt objekt til å vises lokalt eller for å angi et alternativt navn for et lokalt objekt. Synonymer kan for eksempel brukes til å angi et abstraksjonslag mellom klientkode og de faktiske databaseobjektene som brukes av koden. Koden refererer til objekter etter aliasene, uavhengig av objektets faktiske navn.
Merk deg
Du kan opprette et synonym som peker til et objekt som ennå ikke finnes. Dette kalles utsatt navneoppløsning. SQL Server-motoren vil ikke kontrollere om det faktiske objektet finnes før synonymet brukes under kjøring.
Hvis du vil administrere synonymer, bruker du kommandoene FOR datadefinisjonsspråk (DDL) create SYNONYM, ALTER SYNONYM og DROP SYNONYM, som i eksemplet nedenfor:
CREATE SYNONYM dbo.ProdsByCategory FOR TSQL.Production.ProdsByCategory;
GO
EXEC dbo.ProdsByCategory @numrows = 3, @catid = 2;
Hvis du vil opprette et synonym, må du ha tillatelsen OPPRETT SYNONYM samt tillatelse til å endre skjemaet der synonymet skal lagres.
Merk deg
Hvis du vil opprette et synonym, må brukeren ha CREATE SYNONYM-tillatelse og enten eie eller ha ALTER SCHEMA-tillatelse i målskjemaet.
Et synonym er et tomt objekt som løses til kildeobjektet når det refereres til ved kjøring.