Deklarieren und Zuweisen von Variablen und Synonymen

Abgeschlossen

In T-SQL sind Variablen wie bei anderen Programmiersprachen Objekte, die die temporäre Speicherung eines Werts für die spätere Verwendung ermöglichen. Sie haben bereits Variablen gefunden, wenn Sie sie verwendet haben, um Parameterwerte an gespeicherte Prozeduren und Funktionen zu übergeben.

In T-SQL müssen Variablen deklariert werden, bevor sie verwendet werden können. Sie können einen Wert zugewiesen bekommen oder initialisiert werden, wenn sie deklariert werden. Das Deklarieren einer Variablen umfasst die Angabe eines Namens und eines Datentyps, wie unten dargestellt. Um eine Variable zu deklarieren, müssen Sie die DECLARE-Anweisung verwenden.

--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

Variablen müssen im selben Batch deklariert werden, in dem auf sie verwiesen wird. Mit anderen Worten, alle T-SQL-Variablen sind lokal im Bereich des Batches, sowohl in Sichtbarkeit als auch in der Lebensdauer. Nur andere Anweisungen im selben Batch können auf eine Variable zugreifen, die im Batch deklariert ist. Eine Variable wird automatisch zerstört, wenn der Batch endet.

Arbeiten mit Variablen

Nachdem Sie eine Variable deklariert haben, müssen Sie sie initialisieren oder einen Wert zuweisen. Dies können Sie auf drei Arten tun:

  • In SQL Server 2008 oder höher können Sie eine Variable mithilfe der DECLARE-Anweisung initialisieren.
  • In jeder Version von SQL Server können Sie mithilfe der SET-Anweisung einen einzelnen (skalaren) Wert zuweisen.
  • In einer beliebigen Version von SQL Server können Sie einer Variablen mithilfe einer SELECT-Anweisung einen Wert zuweisen. Stellen Sie sicher, dass die SELECT-Anweisung genau eine Zeile zurückgibt. Ein leeres Ergebnis belässt die Variable mit dem ursprünglichen Wert; mehr als ein Ergebnis gibt das letzte Ergebnis zurück.

Das folgende Beispiel zeigt die drei Methoden zum Deklarieren und Zuweisen von Werten zu Variablen:

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

Dadurch werden die folgenden Ergebnisse generiert.

var1 var2 var3
99 Schnur Davis

Tipp

Vollständige Anleitungen zu lokalen Variablen finden Sie in der T-SQL-Referenzdokumentation.

Arbeiten mit Synonymen

In SQL Server stellen Synonyme eine Methode zum Erstellen einer Verknüpfung oder eines Alias zu einem Objekt bereit, das in derselben Datenbank oder sogar in einer anderen Sql Server-Instanz gespeichert ist. Objekte, für die möglicherweise Synonyme definiert sind, umfassen Tabellen, Ansichten, gespeicherte Prozeduren und benutzerdefinierte Funktionen.

Synonyme können verwendet werden, um ein Remoteobjekt lokal anzuzeigen oder einen alternativen Namen für ein lokales Objekt bereitzustellen. Synonyme können z. B. verwendet werden, um eine Abstraktionsebene zwischen Clientcode und den tatsächlichen Datenbankobjekten bereitzustellen, die vom Code verwendet werden. Der Code verweist unabhängig vom tatsächlichen Namen des Objekts auf Objekte anhand ihrer Aliase.

Hinweis

Sie können ein Synonym erstellen, das auf ein Objekt verweist, das noch nicht vorhanden ist. Dies wird als verzögerte Namensauflösung bezeichnet. Die SQL Server-Engine überprüft erst, ob das eigentliche Objekt vorhanden ist, wenn das Synonym zur Laufzeit verwendet wird.

Verwenden Sie zum Verwalten von Synonymen die Data Definition Language (DDL) Befehle CREATE SYNONYM, ALTER SYNONYM und DROP SYNONYM, wie im folgenden Beispiel:

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

Zum Erstellen eines Synonyms benötigen Sie die Berechtigung "SYNONYM ERSTELLEN" sowie die Berechtigung zum Ändern des Schemas, in dem das Synonym gespeichert wird.

Hinweis

Um ein Synonym zu erstellen, muss der Benutzer über die Berechtigung CREATE SYNONYM verfügen und entweder Eigentümer des Zielschemas sein oder darin über die Berechtigung ALTER SCHEMA verfügen.

Ein Synonym ist ein „leeres“ Objekt, das in das Quellobjekt aufgelöst wird, wenn zur Laufzeit darauf verwiesen wird.