SQL Server-variabele: declareren, instellen, selecteren, globaal, lokaal [TSQL-voorbeelden]

Wat is variabel?

In MS SQL zijn variabelen het object dat fungeert als een tijdelijke aanduiding voor een geheugenlocatie. Variabele houdt enkele gegevenswaarde vast.

In deze tutorial leer je:

Typen variabelen: lokaal, globaal

MS SQL heeft twee soorten variabelen:

  1. Lokale variabele
  2. Globale variabele.

De gebruiker kan echter alleen een lokale variabele maken.

Onderstaande afbeelding legt twee soorten variabelen uit die beschikbaar zijn in MS SQL-server.

Type variabelen in SQL Server



Lokale variabele:

  • Een gebruiker declareert de lokale variabele.
  • Standaard begint een lokale variabele met @.
  • Elke lokale variabele scope heeft de beperking tot de huidige batch of procedure binnen een bepaalde sessie.

Globale variabele:

  • Het systeem handhaaft de globale variabele . Een gebruiker kan ze niet declareren.
  • De globale variabele begint met @@
  • Het slaat op sessie gerelateerde informatie .

Een variabele DECLAREREN

  • Voordat u een variabele in een batch of procedure gebruikt, moet u: declareer de variabele.
  • DECLARE-opdracht wordt gebruikt om de variabele DECLARE te gebruiken die fungeert als een tijdelijke aanduiding voor de geheugenlocatie.
  • Pas als de aangifte is gedaan, kan een variabele worden gebruikt in het volgende deel van een batch of procedure.

TSQL-syntaxis:

DECLARE { @LOCAL_VARIABLE[AS] data_type [ = value ] } 

Reglement:

  • Initialisatie is een optioneel iets tijdens het declareren.
  • Standaard initialiseert DECLARE variabele naar NULL.
  • Het gebruik van het trefwoord 'AS' is optioneel.
  • Om meer dan één lokale variabele te declareren, gebruikt u een komma na de eerste lokale variabeledefinitie en definieert u vervolgens de naam en het gegevenstype van de volgende lokale variabele.

Voorbeelden van het declareren van een variabele:

Vraag: Met 'AS'

 DECLARE @COURSE_ID AS INT; 

Zoekopdracht: Zonder 'AS'

 DECLARE @COURSE_NAME VARCHAR (10); 

Query: DECLARE twee variabelen

 DECLARE @COURSE_ID AS INT, @COURSE_NAME VARCHAR (10); 

Een waarde toewijzen aan een VARIABELE

U kunt als volgt een waarde toewijzen aan een variabele: drie manieren :

  1. Tijdens variabele declaratie met DECLARE trefwoord.
  2. SET . gebruiken
  3. SELECT gebruiken

Laten we alle drie de manieren eens in detail bekijken:

Tijdens variabele declaratie met DECLARE trefwoord.

T-SQL-syntaxis:

DECLARE { @Local_Variable [AS] Datatype [ = value ] }

Hier kunnen we na het datatype '=' gebruiken, gevolgd door de toe te wijzen waarde

Vraag:

 DECLARE @COURSE_ID AS INT = 5 PRINT @COURSE_ID 

SET . gebruiken

Soms willen we aangifte en initialisatie gescheiden houden. SET kan worden gebruikt om waarden aan de variabele toe te kennen, na het declareren van een variabele. Hieronder staan ​​de verschillende manieren om waarden toe te wijzen met SET:

Voorbeeld : Een waarde toewijzen aan een variabele met SET

Syntaxis:

DECLARE @Local_Variable SET @Local_Variable = 

Vraag:

 DECLARE @COURSE_ID AS INT SET @COURSE_ID = 5 PRINT @COURSE_ID 

Voorbeeld : een waarde toewijzen aan meerdere variabelen met behulp van SET.

Syntaxis:

DECLARE @Local_Variable _1 , @Local_Variable_2 , SET @Local_Variable_1 = SET @Local_Variable_2 = 

Regel: Een SET Trefwoord kan worden gebruikt om alleen een waarde toe te kennen aan één variabele .

Vraag:

 DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SET @COURSE_ID = 5 SET @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME 

Voorbeeld : Een waarde toewijzen aan een variabele met a scalaire subquery met behulp van SET

Syntaxis:

DECLARE @Local_Variable_1 , @Local_Variable_2 ,SET @Local_Variable_1 = (SELECT from where )

Reglement:

  • Zet de query tussen haakjes.
  • De query moet een scalaire query zijn. Een scalaire query is een query met resultaten als slechts één rij en één kolom. Anders zal de query een fout genereren.
  • Als de query nul rijen retourneert, wordt de variabele ingesteld op LEEG, d.w.z. NULL.

Aanname: Stel dat we de tabel hebben als 'Guru99' met twee kolommen zoals hieronder weergegeven:

We zullen de 'Guru99'-tabel gebruiken in de verdere tutorials

Voorbeeld 1: Wanneer subquery één rij als resultaat retourneert.

 DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 3) PRINT @COURSE_NAME 

Voorbeeld 2: Wanneer subquery nul rij als resultaat retourneert

 DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME 

In dit specifieke geval is de variabelewaarde LEEG, d.w.z. NULL.

SELECTEREN GEBRUIKEN

Net als SET kunnen we ook SELECT gebruiken om waarden aan de variabelen toe te kennen, na het declareren van een variabele met DECLARE. Hieronder staan ​​verschillende manieren om een ​​waarde toe te wijzen met SELECT:

Voorbeeld : Een waarde toewijzen aan een variabele met SELECT

Syntaxis:

DECLARE @LOCAL_VARIABLE SELECT @LOCAL_VARIABLE = 

Vraag:

 DECLARE @COURSE_ID INT SELECT @COURSE_ID = 5 PRINT @COURSE_ID 

Voorbeeld : Een waarde toewijzen aan meerdere variabelen met SELECT

Syntaxis:

DECLARE @Local_Variable _1 , @Local_Variable _2 ,SELECT @Local_Variable _1 = , @Local_Variable _2 = 

Reglement: In tegenstelling tot SET kan SELECT worden gebruikt om een ​​waarde toe te wijzen naar meerdere variabelen gescheiden door de paragraaf .

 DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SELECT @COURSE_ID = 5, @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME 

Voorbeeld : De waarde toewijzen aan een variabele met een subquery met behulp van SELECT

Syntaxis:

DECLARE @Local_Variable_1 , @Local_Variable _2 ,SELECT @Local_Variable _1 = (SELECT from where )

Reglement:

  • Zet de query tussen haakjes.
  • De query moet een scalaire query zijn. De scalaire query is de query met het resultaat als één rij en één kolom. Anders zal de query een fout genereren.
  • Als de query nul rijen retourneert, is de variabele LEEG, d.w.z. NULL.
  • Heroverweeg onze 'Guru99'-tabel

Voorbeeld 1: Wanneer subquery één rij als resultaat retourneert.

 DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 1) PRINT @COURSE_NAME 

Voorbeeld 2: Wanneer subquery nul rij als resultaat retourneert

 DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME 

In dit specifieke geval is de variabele EMPTY, d.w.z. NULL.

Voorbeeld 3: Wijs een waarde toe aan een variabele met een gewone SELECT-instructie.

Syntaxis:

DECLARE @Local_Variable _1 , @Local_Variable _2 ,SELECT @Local_Variable _1 = from where 

Reglement:

  • In tegenstelling tot SET, als de query resulteert in meerdere rijen, wordt de variabelewaarde ingesteld op de waarde van de laatste rij.
  • Als de query nul rijen retourneert, wordt de variabele ingesteld op LEEG, d.w.z. NULL.

Query 1: De query retourneert één rij.

 DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 3 PRINT @COURSE_NAME 

Query 2: De query retourneert meerdere rijen.

 DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 PRINT @COURSE_NAME 

In dit speciale geval, variabele waarde is ingesteld op de waarde van de laatste rij .

Query 3: De query retourneert nul rijen.

 DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 5 PRINT @COURSE_NAME 

In dit specifieke geval is de variabele LEEG, d.w.z. NULL.

Andere voorbeelden

Variabele gebruiken in de query

Vraag:

 DECLARE @COURSE_ID Int = 1 SELECT * from Guru99 where Tutorial_id = @COURSE_ID 

Interessante feiten!

  • Een lokale variabele kan worden weergegeven met zowel PRINT als SELECT COMMAND
  • Tabel Gegevenstype staat het gebruik van 'AS' tijdens declaratie niet toe.
  • SET voldoet aan de ANSI-normen, terwijl SELECT dat niet doet.
  • Het maken van een lokale variabele met de naam @ is ook toegestaan. We kunnen het bijvoorbeeld declareren als: |_+_|

Samenvatting:

  • Variabelen zijn het object dat als tijdelijke aanduiding fungeert.
  • Er zijn twee soorten variabelen: lokaal en globaal
  • We kunnen de variabele op de volgende drie manieren toewijzen:

    Tijdens het gebruik van DECLARE
    SET . gebruiken
    SELECTEREN GEBRUIKEN