Variabile SQL: SQL Server Declara, Setează și Selectează Variabile
Ce este o variabilă în SQL Server?
În MS SQL, variabilele sunt obiectul care acționează ca un substituent pentru o locație de memorie. Variabila păstrează o singură valoare a datelor.
Tipuri de variabile în SQL: Local, Global
MS SQL are două tipuri de variabile:
- Variabilă locală
- Variabila globala.
Cu toate acestea, utilizatorul poate crea doar o variabilă locală.
Figura de mai jos explică două tipuri de variabile disponibile în Server MS SQL.

Variabilă locală
- Un utilizator declară variabila locală.
- În mod implicit, o variabilă locală începe cu @.
- Fiecare domeniu de aplicare a variabilei locale are restricția la lotul sau procedura curentă în cadrul oricărei sesiuni date.
Variabilă globală
- Sistemul menține variabila globală. Un utilizator nu le poate declara.
- Variabila globală începe cu @@
- Se stochează informații legate de sesiune.
Cum să DECLARE o variabilă în SQL
- Înainte de a utiliza orice variabilă în lot sau procedură, trebuie declara variabila.
- Comanda DECLARE este folosită pentru a DECLARE variabila care acționează ca un substituent pentru locația de memorie.
- Doar odată ce declarația este făcută, o variabilă poate fi utilizată în partea ulterioară a lotului sau a procedurii.
Sintaxa TSQL:
DECLARE { @LOCAL_VARIABLE[AS] data_type [ = value ] }
reguli:
- Inițializarea este un lucru opțional în timpul declarării.
- În mod implicit, DECLARE inițializează variabila la NULL.
- Utilizarea cuvântului cheie „AS” este opțională.
- Pentru a declara mai multe variabile locale, utilizați o virgulă după prima definiție a variabilei locale, apoi definiți următorul nume de variabilă locală și tip de date.
Exemple de declarare a unei variabile
Interogare: cu „AS”
DECLARE @COURSE_ID AS INT;
Interogare: fără „AS”
DECLARE @COURSE_NAME VARCHAR (10);
Interogare: DECLARE două variabile
DECLARE @COURSE_ID AS INT, @COURSE_NAME VARCHAR (10);
Atribuirea unei valori variabilei SQL
Puteți atribui o valoare unei variabile în cele ce urmează trei modalități de:
- În timpul declarației variabilei folosind cuvântul cheie DECLARE.
- Folosind SET
- Folosind SELECT
Să aruncăm o privire la toate cele trei moduri în detaliu:
În timpul declarației variabilei folosind cuvântul cheie DECLARE
Sintaxa T-SQL:
DECLARE { @Local_Variable [AS] Datatype [ = value ] }
Aici, după tipul de date putem folosi „=” urmat de valoarea de atribuit
Solicitare:
DECLARE @COURSE_ID AS INT = 5 PRINT @COURSE_ID
Folosind SQL SET VARIABLE
Uneori dorim să păstrăm separat declarația și inițializarea. SET poate fi folosit pentru a atribui valori variabilei, după declararea unei variabile. Mai jos sunt diferitele modalități de a atribui valori folosind SET:
Exemplu: Atribuirea unei valori unei variabile folosind SET
Sintaxă:
DECLARE @Local_Variable <Data_Type> SET @Local_Variable = <Value>
Solicitare:
DECLARE @COURSE_ID AS INT SET @COURSE_ID = 5 PRINT @COURSE_ID
Exemplu: Atribuiți o valoare lui variabile multiple folosind SET.
Sintaxă:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable_2 <Data_Type>, SET @Local_Variable_1 = <Value_1> SET @Local_Variable_2 = <Value_2>
Regulă: Un cuvânt cheie SET poate fi folosit pentru a atribui o valoare numai lui o variabilă.
Solicitare:
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SET @COURSE_ID = 5 SET @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
Exemplu: Atribuirea unei valori unei variabile cu a Subinterogare scalară folosind SET
Sintaxă:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable_2 <Data_Type>,SET @Local_Variable_1 = (SELECT <Column_1> from <Table_Name> where <Condition_1>)
reguli:
- Introduceți interogarea între paranteze.
- Interogarea ar trebui să fie o interogare scalară. O interogare scalară este o interogare cu rezultate pe un singur rând și o coloană. În caz contrar, interogarea va genera o eroare.
- Dacă interogarea returnează zero rânduri, atunci variabila este setată la EMPTY, adică NULL.
Presupunere: Să presupunem că avem tabelul ca „Guru99” cu două coloane, așa cum este afișat mai jos:
Vom folosi tabelul „Guru99” în tutorialele ulterioare
Exemplu 1: Atunci când subinterogarea returnează un rând ca rezultat.
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 3) PRINT @COURSE_NAME
Exemplul 2: Când subinterogarea returnează zero rând ca rezultat
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
În acest caz particular, valoarea variabilei este EMPTY, adică NULL.
Folosind SQL SELECT VARIABLE
La fel ca SET, putem folosi și SELECT pentru a atribui valori variabilelor, după declararea unei variabile folosind DECLARE. Mai jos sunt diferite moduri de a atribui o valoare folosind SELECT:
Exemplu: Atribuirea unei valori unei variabile folosind SELECT
Sintaxă:
DECLARE @LOCAL_VARIABLE <Data_Type> SELECT @LOCAL_VARIABLE = <Value>
Solicitare:
DECLARE @COURSE_ID INT SELECT @COURSE_ID = 5 PRINT @COURSE_ID
Exemplu: Atribuirea unei valori mai multor variabile folosind SELECT
Sintaxă:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Value_1>, @Local_Variable _2 = <Value_2>
reguli: Spre deosebire de SET, SELECT poate fi folosit pentru a atribui o valoare la mai multe variabile separate de virgulă.
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SELECT @COURSE_ID = 5, @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
Exemplu: Atribuirea valorii unei variabile cu o subinterogare folosind SELECT
Sintaxă:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = (SELECT <Column_1> from <Table_name> where <Condition_1>)
reguli:
- Introduceți interogarea în paranteză.
- Interogarea ar trebui să fie o interogare scalară. Interogarea scalară este interogarea cu rezultatul pe un rând și o coloană. În caz contrar, interogarea va genera o eroare.
- Dacă interogarea returnează zero rânduri, atunci variabila este EMPTY, adică NULL.
- Reconsiderați tabelul nostru „Guru99”.
Exemplu 1: Atunci când subinterogarea returnează un rând ca rezultat.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 1) PRINT @COURSE_NAME
Exemplu 2: Când subinterogarea returnează zero rând ca rezultat
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
În acest caz particular, variabila este la EMPTY, adică NULL.
Exemplu 3: Atribuiți o valoare unei variabile cu o instrucțiune obișnuită SELECT.
Sintaxă:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Column_1> from <Table_name> where <Condition_1>
reguli:
- Spre deosebire de SET, dacă interogarea are ca rezultat mai multe rânduri, atunci valoarea variabilei este setată la valoarea ultimului rând.
- Dacă interogarea returnează zero rânduri, atunci variabila este setată la EMPTY, adică NULL.
Interogarea 1: interogarea returnează un rând.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 3 PRINT @COURSE_NAME
Interogarea 2: interogarea returnează mai multe rânduri.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 PRINT @COURSE_NAME
În acest caz special, valoarea variabilă este setată la valoarea ultimului rând.
Interogarea 3: interogarea returnează zero rânduri.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 5 PRINT @COURSE_NAME
În acest caz particular, variabila este EMPTY, adică NULL.
Alte exemple de variabile SQL
Utilizarea variabilei în interogare
Solicitare:
DECLARE @COURSE_ID Int = 1 SELECT * from Guru99 where Tutorial_id = @COURSE_ID
Fapte interesante despre variabilele SQL Server!
- O variabilă locală poate fi afișată folosind PRINT, precum și SELECT COMMAND
- Tipul de date de tabel nu permite utilizarea „AS” în timpul declarației.
- SET respectă standardele ANSI, în timp ce SELECT nu.
- Crearea unei variabile locale cu numele @ este de asemenea permisă. O putem declara ca, de exemplu:
'DECLARE @@ as VARCHAR (10)'
Rezumat
- Variabilele sunt obiectul care acționează ca substituent.
- Există două tipuri de variabile: locale și globale
- Putem aloca variabila în următoarele trei moduri: În timpul utilizării 1) DECLARE 2) Folosind SET 3) UTILIZARE SELECT














