- 09/06/2017
- 2 minuter att läsa
-
- c
- r
- M
- i
- M
-
+7
Gäller: SQL Server (alla versioner som stöds) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics
Sätter en lokal variabel till värdet av ett uttryck.
För att tilldela variabler rekommenderar vi att du använder SET @local_variable i stället för SELECT @local_variable.
Transact-SQL Syntaxkonventioner
Syntax
SELECT { @local_variable { = | += | -= | *= | /= | %= | &= | ^= | |= } expression }
Notis
Om du vill visa Transact-SQL-syntaxen för SQL Server 2014 och tidigare, se dokumentationen för tidigare versioner.
Argument
@lokal_variabel
Är en deklarerad variabel för vilken ett värde ska tilldelas.
{= | += | -= | *= | /= | %= | &= | ^= | | |= }
Tilldela värdet till höger till variabeln till vänster.
Sammansatt tilldelningsoperator:
operator | aktion | |
---|---|---|
= | Tilldelar uttrycket som följer, till variabeln. | |
+= | Lägg till och tilldela | |
-= | Subtrahera och tilldela | |
*= | Multiplicera och tilldela | |
/= | Dividerar och tilldelar | |
%= | Modulerar och tilldelar | |
. | &= | Bitwise AND och assign |
^= | Bitwise XOR och assign | |
|= | Bitwise OR och assign |
expression
Är ett giltigt uttryck. Detta inkluderar en skalär subquery.
Remarks
SELECT @local_variable används vanligtvis för att returnera ett enda värde till variabeln. När uttrycket är namnet på en kolumn kan dock flera värden returneras. Om SELECT-instruktionen returnerar mer än ett värde tilldelas variabeln det sista värdet som returneras.
Om SELECT-instruktionen inte returnerar några rader behåller variabeln sitt nuvarande värde. Om uttrycket är en skalär underfråga som inte returnerar något värde sätts variabeln till NULL.
Ett SELECT-uttalande kan initiera flera lokala variabler.
Notera
Ett SELECT-uttalande som innehåller en variabeltilldelning kan inte användas för att även utföra typiska hämtningsoperationer för resultatuppsättningar.
Exempel
A. Använd SELECT @local_variable för att returnera ett enda värde
I följande exempel tilldelas variabeln @var1
Generic Name
som värde. Frågan mot tabellen Store
returnerar inga rader eftersom det värde som anges för CustomerID
inte finns i tabellen. Variabeln behåller värdet Generic Name
.
Här är resultatuppsättningen.
Company Name ------------------------------ Generic Name
B. Använd SELECT @local_variable för att returnera null
I följande exempel används en underfråga för att tilldela ett värde till @var1
. Eftersom det begärda värdet för CustomerID
inte finns, returnerar subquery inget värde och variabeln sätts till NULL
.
Här är resultatuppsättningen.
Company Name ---------------------------- NULL
Se även
DECLARE @local_variable (Transact-SQL)
Expressions (Transact-SQL)
Compound Operators (Transact-SQL)
SELECT (Transact-SQL)