SELECT @local_variable (Transact-SQL)
Legt fest, dass die angegebene lokale Variable, die mit DECLARE **@**local_variable erstellt wurde, auf den angegebenen Ausdruck gesetzt werden sollte.
Für die Zuweisung von Variablen wird die Verwendung von SET **@**local_variable anstelle von SELECT **@**local_variable empfohlen. Weitere Informationen finden Sie unter SET @local\_variable.
Transact-SQL-Syntaxkonventionen
Syntax
SELECT { @local_variable = expression } [ ,...n ] [ ; ]
Argumente
**@**local_variable
Dies ist eine deklarierte Variable, der ein Wert zugewiesen wird.
expression
Dies ist ein beliebiger gültiger Ausdruck. Er enthält eine skalare Unterabfrage.
Hinweise
SELECT @local_variable dient in der Regel dazu, einen einzelnen Wert in die Variable zurückzugeben. Wenn es sich bei expression jedoch um den Namen einer Spalte handelt, können auch mehrere Werte zurückgegeben werden. Falls die SELECT-Anweisung mehr als einen Wert zurückgibt, wird der Variablen der zuletzt zurückgegebene Wert zugewiesen.
Wenn die SELECT-Anweisung keine Zeilen zurückgibt, behält die Variable ihren derzeitigen Wert bei. Ist expression eine skalare Unterabfrage, die keinen Wert zurückgibt, wird die Variable auf NULL gesetzt.
Eine SELECT-Anweisung kann mehrere lokale Variablen initialisieren.
Hinweis: |
---|
Eine SELECT-Anweisung, die eine Variablenzuweisung enthält, kann nicht zugleich zur Durchführung der normalen Abrufvorgänge für Resultsets verwendet werden. |
Beispiele
A. Verwenden von SELECT @local\_variable, um einen einzelnen Wert zurückzugeben
Das folgende Beispiel weist der Variable @var1
den Wert Generic Name
zu. Die Abfrage der Tabelle Store
gibt keine Zeilen zurück, da der für CustomerID
angegebene Wert nicht in der Tabelle enthalten ist. Die Variable behält den Wert Generic Name
bei.
USE AdventureWorks ;
GO
DECLARE @var1 nvarchar(30);
SELECT @var1 = 'Generic Name';
SELECT @var1 = Name
FROM Sales.Store
WHERE CustomerID = 1000 ;
SELECT @var1 AS 'Company Name';
Dies ist das Resultset.
Company Name
------------------------------
Generic Name
B. Verwenden von SELECT @local\_variable für ein Resultset ohne Wert gibt NULL zurück
Das folgende Beispiel weist der Variable @var1
mithilfe einer Unterabfrage einen Wert zu. Da der für CustomerID
angeforderte Wert nicht vorhanden ist, gibt die Unterabfrage keinen Wert zurück, und die Variable wird auf NULL
gesetzt.
USE AdventureWorks ;
GO
DECLARE @var1 nvarchar(30)
SELECT @var1 = 'Generic Name'
SELECT @var1 = (SELECT Name
FROM Sales.Store
WHERE CustomerID = 1000)
SELECT @var1 AS 'Company Name' ;
Dies ist das Resultset.
Company Name
----------------------------
NULL
Siehe auch
Verweis
DECLARE @local\_variable (Transact-SQL)
Ausdrücke (Transact-SQL)
SELECT (Transact-SQL)