Freigeben über


SELECT @local_variable (Transact-SQL)

Legt fest, dass für die angegebene lokale Variable, die mit DECLARE @local\_variable erstellt wurde, der angegebene Ausdruck festgelegt werden sollte.

Zum Zuweisen von Variablen empfiehlt es sich, dass Sie SET @local\_variable anstelle von SELECT @local\_variable verwenden. Weitere Informationen finden Sie unter SET @local\_variable.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

SELECT { @local_variable { = | += | -= | *= | /= | %= | &= | ^= | |= } expression } [ ,...n ] [ ; ]

Argumente

  • @local\_variable
    Dies ist eine deklarierte Variable, der ein Wert zugewiesen wird.

  • =
    Den Wert auf der rechten Seite der Variablen auf der linken Seite zuweisen.

  • {= | += | -= | *= | /= | %= | &= | ^= | |= }
    Verbundzuweisungsoperator:

    += Addition und Zuweisung

    -= Subtraktion und Zuweisung

    *= Multiplikation und Zuweisung

    /= Division und Zuweisung

    %= Modulo und Zuweisung

    &= Bitweises AND und Zuweisung

    ^= Bitweises XOR und Zuweisung

    |= Bitweises OR und Zuweisung

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

HinweisHinweis

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 AdventureWorks2012 ;       
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 AdventureWorks2012 ; 
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)