SELECT @local_variable (Transact-SQL)
Indica che la variabile locale specificata creata tramite DECLARE **@**local_variable deve essere impostata sull'espressione specificata.
Per l'assegnazione delle variabili è consigliabile utilizzare SET **@**local_variable anziché SELECT **@**local_variable. Per ulteriori informazioni, vedere SET @local\_variable.
Convenzioni della sintassi Transact-SQL
Sintassi
SELECT { @local_variable = expression } [ ,...n ] [ ; ]
Argomenti
**@**local_variable
Variabile dichiarata a cui deve essere assegnato un valore.
expression
Qualsiasi espressione valida. Include una subquery scalare.
Osservazioni
L'istruzione SELECT @local_variable viene in genere utilizzata per ottenere un singolo valore nella variabile. Se, tuttavia, expression corrisponde al nome di una colonna, è possibile che restituisca più valori. Se l'istruzione SELECT restituisce più valori, alla variabile viene assegnato l'ultimo valore restituito.
Se l'istruzione SELECT non restituisce righe, la variabile mantiene il valore corrente. Se expression è una subquery scalare che non restituisce valori, la variabile viene impostata su NULL.
Un'istruzione SELECT può inizializzare più variabili locali.
[!NOTA] Un'istruzione SELECT che include l'assegnazione di un valore a una variabile non può essere utilizzata anche per eseguire normali operazioni di recupero del set di risultati.
Esempi
A. Utilizzo dell'istruzione SELECT @local\_variable per la restituzione di un singolo valore
Nell'esempio seguente alla variabile @var1
viene assegnato Generic Name
come valore. La query eseguita nella tabella Store
non restituisce righe perché il valore specificato per CustomerID
non esiste nella tabella. La variabile mantiene il valore Generic Name
.
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';
Set di risultati:
Company Name
------------------------------
Generic Name
B. Utilizzo dell'istruzione SELECT @local\_variable per la restituzione di nessun set di risultati e impostazione della variabile su NULL
Nell'esempio seguente viene utilizzata una subquery per assegnare un valore a @var1
. Poiché il valore richiesto da CustomerID
non esiste, la subquery non restituisce valori e la variabile viene impostata su NULL
.
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' ;
Set di risultati:
Company Name
----------------------------
NULL
Vedere anche
Riferimento
DECLARE @local\_variable (Transact-SQL)
Espressioni (Transact-SQL)
SELECT (Transact-SQL)