SQL-Variablen: SQL Server-Variable deklarieren, festlegen und auswählen
Was ist eine Variable in SQL Server?
In MS SQL sind Variablen Objekte, die als Platzhalter für einen Speicherort dienen. Die Variable enthält einen einzelnen Datenwert.
Variablentypen in SQL: Lokal, Global
MS SQL verfügt über zwei Arten von Variablen:
- Lokale Variable
- Globale Variable.
Der Benutzer kann jedoch nur eine lokale Variable erstellen.
Die folgende Abbildung erläutert zwei Arten von Variablen, die in verfügbar sind MS SQL-Server.

Lokale Variable
- Ein Benutzer deklariert die lokale Variable.
- Standardmäßig beginnt eine lokale Variable mit @.
- Jeder lokale Variablenbereich hat die Einschränkung auf aktuelle Charge oder Prozedur innerhalb einer bestimmten Sitzung.
Globale Variable
- Das System verwaltet die globale Variable. Ein Benutzer kann sie nicht deklarieren.
- Die globale Variable beginnt mit @@
- Es speichert sitzungsbezogene Informationen.
So deklarieren Sie eine Variable in SQL
- Bevor Sie eine Variable in einem Batch oder einer Prozedur verwenden, müssen Sie dies tun Deklarieren Sie die Variable.
- Der Befehl DECLARE wird zum DECLARE einer Variablen verwendet, die als Platzhalter für den Speicherort fungiert.
- Erst wenn die Deklaration erfolgt ist, kann eine Variable im nachfolgenden Teil eines Batches oder einer Prozedur verwendet werden.
TSQL-Syntax:
DECLARE { @LOCAL_VARIABLE[AS] data_type [ = value ] }
Regeln:
- Die Initialisierung ist bei der Deklaration eine optionale Sache.
- Standardmäßig initialisiert DECLARE die Variable auf NULL.
- Die Verwendung des Schlüsselworts „AS“ ist optional.
- Um mehr als eine lokale Variable zu deklarieren, verwenden Sie nach der ersten lokalen Variablendefinition ein Komma und definieren Sie dann den Namen und die nächste lokale Variable Datentyp.
Beispiele für die Deklaration einer Variablen
Abfrage: Mit 'AS'
DECLARE @COURSE_ID AS INT;
Abfrage: Ohne 'AS'
DECLARE @COURSE_NAME VARCHAR (10);
Abfrage: DECLARE zwei Variablen
DECLARE @COURSE_ID AS INT, @COURSE_NAME VARCHAR (10);
Zuweisen eines Werts zur SQL-Variablen
Sie können einer Variablen wie folgt einen Wert zuweisen: nach drei Wege:
- Während der Variablendeklaration mit dem Schlüsselwort DECLARE.
- Mit SET
- Mit SELECT
Schauen wir uns alle drei Möglichkeiten im Detail an:
Während der Variablendeklaration mit dem Schlüsselwort DECLARE
T-SQL-Syntax:
DECLARE { @Local_Variable [AS] Datatype [ = value ] }
Hier können wir nach dem Datentyp „=“ gefolgt vom zuzuweisenden Wert verwenden
Abfrage:
DECLARE @COURSE_ID AS INT = 5 PRINT @COURSE_ID
Verwenden von SQL SET VARIABLE
Manchmal möchten wir Deklaration und Initialisierung getrennt halten. SET kann verwendet werden, um der Variablen Werte zuzuweisen, nachdem eine Variable deklariert wurde. Nachfolgend sind die verschiedenen Möglichkeiten aufgeführt, Werte mit SET zuzuweisen:
Beispiel: Einer Variablen mit SET einen Wert zuweisen
Syntax:
DECLARE @Local_Variable <Data_Type> SET @Local_Variable = <Value>
Abfrage:
DECLARE @COURSE_ID AS INT SET @COURSE_ID = 5 PRINT @COURSE_ID
Beispiel: Weisen Sie einen Wert zu mehrere Variablen mit SET.
Syntax:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable_2 <Data_Type>, SET @Local_Variable_1 = <Value_1> SET @Local_Variable_2 = <Value_2>
Regel: Ein SET-Schlüsselwort kann nur zum Zuweisen eines Werts verwendet werden eine Variable.
Abfrage:
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SET @COURSE_ID = 5 SET @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
Beispiel: Zuweisen eines Werts zu einer Variablen mit a Skalare Unterabfrage mit SET
Syntax:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable_2 <Data_Type>,SET @Local_Variable_1 = (SELECT <Column_1> from <Table_Name> where <Condition_1>)
Regeln:
- Schließen Sie die Abfrage in Klammern ein.
- Die Abfrage sollte eine Skalarabfrage sein. Eine Skalarabfrage ist eine Abfrage, deren Ergebnisse nur aus einer Zeile und einer Spalte bestehen. Andernfalls wird bei der Abfrage ein Fehler ausgegeben.
- Wenn die Abfrage keine Zeilen zurückgibt, wird die Variable auf EMPTY, also NULL, gesetzt.
Annahme: Nehmen wir an, wir haben die Tabelle „Guru99“ mit zwei Spalten, wie unten dargestellt:
In den weiteren Tutorials werden wir die Tabelle „Guru99“ verwenden
Beispiel 1: Wenn die Unterabfrage eine Zeile als Ergebnis zurückgibt.
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 3) PRINT @COURSE_NAME
Beispiel 2: Wenn die Unterabfrage als Ergebnis eine Nullzeile zurückgibt
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
In diesem speziellen Fall ist der Variablenwert EMPTY, also NULL.
Verwenden von SQL SELECT VARIABLE
Genau wie SET können wir auch SELECT verwenden, um den Variablen Werte zuzuweisen, nachdem wir eine Variable mit DECLARE deklariert haben. Im Folgenden finden Sie verschiedene Möglichkeiten, mit SELECT einen Wert zuzuweisen:
Beispiel: Einer Variablen mit SELECT einen Wert zuweisen
Syntax:
DECLARE @LOCAL_VARIABLE <Data_Type> SELECT @LOCAL_VARIABLE = <Value>
Abfrage:
DECLARE @COURSE_ID INT SELECT @COURSE_ID = 5 PRINT @COURSE_ID
Beispiel: Zuweisen eines Werts zu mehreren Variablen mithilfe von SELECT
Syntax:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Value_1>, @Local_Variable _2 = <Value_2>
Regeln: Im Gegensatz zu SET kann mit SELECT ein Wert zugewiesen werden auf mehrere Variablen getrennt durch die Komma.
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SELECT @COURSE_ID = 5, @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
Beispiel: Zuweisen des Werts zu einer Variablen mit einer Unterabfrage mithilfe von SELECT
Syntax:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = (SELECT <Column_1> from <Table_name> where <Condition_1>)
Regeln:
- Schließen Sie die Abfrage in Klammern ein.
- Die Abfrage sollte eine Skalarabfrage sein. Die Skalarabfrage ist die Abfrage, deren Ergebnis eine Zeile und eine Spalte ist. Andernfalls gibt die Abfrage einen Fehler aus.
- Wenn die Abfrage keine Zeilen zurückgibt, ist die Variable LEER, also NULL.
- Überdenken Sie unsere Tabelle „Guru99“.
Beispiel 1: Wenn die Unterabfrage eine Zeile als Ergebnis zurückgibt.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 1) PRINT @COURSE_NAME
Beispiel 2: Wenn die Unterabfrage als Ergebnis eine Nullzeile zurückgibt
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
In diesem speziellen Fall ist die Variable EMPTY, also NULL.
Beispiel 3: Weisen Sie einer Variablen mit einer regulären SELECT-Anweisung einen Wert zu.
Syntax:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Column_1> from <Table_name> where <Condition_1>
Regeln:
- Im Gegensatz zu SET wird der Variablenwert auf den Wert der letzten Zeile gesetzt, wenn die Abfrage mehrere Zeilen ergibt.
- Wenn die Abfrage keine Zeilen zurückgibt, wird die Variable auf EMPTY, also NULL, gesetzt.
Abfrage 1: Die Abfrage gibt eine Zeile zurück.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 3 PRINT @COURSE_NAME
Abfrage 2: Die Abfrage gibt mehrere Zeilen zurück.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 PRINT @COURSE_NAME
In diesem speziellen Fall ist der Variablenwert auf den Wert der letzten Zeile gesetzt.
Abfrage 3: Die Abfrage gibt null Zeilen zurück.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 5 PRINT @COURSE_NAME
In diesem speziellen Fall ist die Variable EMPTY, also NULL.
Weitere Beispiele für SQL-Variablen
Variable in der Abfrage verwenden
Abfrage:
DECLARE @COURSE_ID Int = 1 SELECT * from Guru99 where Tutorial_id = @COURSE_ID
Interessante Fakten über SQL Server-Variablen!
- Eine lokale Variable kann sowohl mit PRINT als auch mit SELECT COMMAND angezeigt werden.
- Der Tabellendatentyp lässt die Verwendung von „AS“ während der Deklaration nicht zu.
- SET entspricht den ANSI-Standards, SELECT hingegen nicht.
- Das Erstellen einer lokalen Variablen mit dem Namen @ ist ebenfalls zulässig. Wir können es zum Beispiel so deklarieren:
'DECLARE @@ as VARCHAR (10)'
Zusammenfassung
- Variablen sind das Objekt, das als Platzhalter fungiert.
- Es gibt zwei Arten von Variablen: Lokal und Global
- Wir können die Variable auf folgende drei Arten zuweisen: Mit 1) DECLARE 2) Mit SET 3) MIT SELECT














