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

admin

Lämna ett svar

Din e-postadress kommer inte publiceras.

lg