Deklarer og tildel variabler og synonymer

Fuldført

I T-SQL er variabler som med andre programmeringssprog objekter, der tillader midlertidig lagring af en værdi til senere brug. Du har allerede fundet variabler, da du brugte dem til at overføre parameterværdier til lagrede procedurer og funktioner.

I T-SQL skal variabler erklæres, før de kan bruges. De kan tildeles en værdi eller initialiseres, når de erklæres. Erklæring af en variabel omfatter angivelse af et navn og en datatype, som vist nedenfor. Hvis du vil deklarere en variabel, skal du bruge sætningen DECLARE.

--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 skal deklareres i det samme batch, som der refereres til. Med andre ord er alle T-SQL-variabler lokale i forhold til batchen, både i synlighed og levetid. Det er kun andre sætninger i samme batch, der kan se en variabel, der er defineret i batchen. En variabel ødelægges automatisk, når batchen slutter.

Arbejde med variabler

Når du har erklæret en variabel, skal du initialisere den eller tildele den en værdi. Det kan du gøre på tre måder:

  • I SQL Server 2008 eller nyere kan du initialisere en variabel ved hjælp af sætningen DECLARE.
  • I alle versioner af SQL Server kan du tildele en enkelt (skalar) værdi ved hjælp af SET-sætningen.
  • I alle versioner af SQL Server kan du tildele en værdi til en variabel ved hjælp af en SELECT-sætning. Sørg for, at SELECT-sætningen returnerer præcis én række. Et tomt resultat efterlader variablen med den oprindelige værdi. mere end ét resultat returnerer det sidste resultat.

I følgende eksempel vises de tre måder at erklære og tildele værdier 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

Drikkepenge

Du kan finde en komplet vejledning til lokale variabler i dokumentationen til T-SQL-referencen.

Arbejde med synonymer

I SQL Server angiver synonymer en metode til oprettelse af en kæde eller et alias til et objekt, der er gemt i den samme database eller endda på en anden forekomst af SQL Server. Objekter, der kan have synonymer defineret for dem, omfatter tabeller, visninger, lagrede procedurer og brugerdefinerede funktioner.

Synonymer kan bruges til at få et fjernobjekt til at se ud som lokalt eller til at angive et alternativt navn til et lokalt objekt. Synonymer kan f.eks. bruges til at levere et abstraktionslag mellem klientkoden og de faktiske databaseobjekter, der bruges af koden. Koden refererer til objekter efter deres aliasser, uanset objektets faktiske navn.

Seddel

Du kan oprette et synonym, der peger på et objekt, der endnu ikke findes. Dette kaldes udskudt navnefortsættelse. SQL Server-programmet kontrollerer ikke, om det faktiske objekt findes, før synonymet bruges på kørselstidspunktet.

Hvis du vil administrere synonymer, skal du bruge DDL-kommandoerne CREATE SYNONYM, ALTER SYNONYM og DROP SYNONYM som i følgende eksempel:

CREATE SYNONYM dbo.ProdsByCategory FOR TSQL.Production.ProdsByCategory;
GO
EXEC dbo.ProdsByCategory @numrows = 3, @catid = 2;

Hvis du vil oprette et synonym, skal du have tilladelsen 'CREATE SYNONYM' og have tilladelse til at ændre det skema, synonymet gemmes i.

Seddel

Hvis du vil oprette et synonym, skal brugeren have tilladelsen CREATE SYNONYM og enten eje eller have tilladelsen ALTER SCHEMA i destinationsskemaet.

Et synonym er et "tomt" objekt, der fortolkes til kildeobjektet, når der refereres til det på kørselstidspunktet.