Variabel SQL: Mendeklarasikan, Mengatur, dan Memilih Variabel di SQL Server
โก Ringkasan Cerdas
Variabel SQL Server adalah objek bernama yang berfungsi sebagai tempat penampung untuk satu nilai data dalam memori. Sebuah variabel harus dideklarasikan dengan pernyataan DECLARE sebelum dapat diberi nilai dan digunakan kembali.

Apa itu Variabel di SQL Server?
In MSSQL ServerVariabel adalah objek yang berfungsi sebagai tempat penampung untuk lokasi memori. Sebuah variabel menyimpan satu nilai data yang dapat Anda baca dan gunakan kembali di seluruh batch atau prosedur.
Tipe Variabel dalam SQL: Lokal, Global
MS SQL Server memiliki dua jenis variabel:
- Variabel lokal
- Variabel global
Namun, pengguna hanya dapat membuat variabel lokal. Gambar di bawah ini menjelaskan dua jenis variabel yang tersedia di MS SQL Server.
Variabel lokal
- Seorang pengguna mendeklarasikan variabel lokal.
- Secara default, nama variabel lokal diawali dengan @.
- Setiap variabel lokal dibatasi ruang lingkupnya pada batch atau prosedur saat ini dalam sesi tertentu.
Variabel global
- Sistem tersebut memelihara variabel global; pengguna tidak dapat mendeklarasikan variabel tersebut.
- Nama variabel global diawali dengan @@.
- Ini menyimpan informasi yang terkait dengan sesi.
Cara MENYATAKAN variabel dalam SQL
Sebelum menggunakan variabel apa pun dalam batch atau prosedur di SQLAnda harus mendeklarasikannya. Perintah DECLARE membuat variabel yang berfungsi sebagai tempat penampung lokasi memori. Variabel tersebut hanya dapat digunakan pada bagian selanjutnya dari batch atau prosedur setelah deklarasi dibuat.
Sintaks TSQL:
DECLARE { @LOCAL_VARIABLE[AS] data_type [ = value ] }
Aturan:
- Inisialisasi bersifat opsional saat deklarasi.
- Secara default, DECLARE menginisialisasi variabel ke NULL.
- Menggunakan kata kunci 'AS' adalah opsional.
- Untuk mendeklarasikan lebih dari satu variabel lokal, tambahkan koma setelah definisi pertama, lalu berikan nama variabel berikutnya dan tipe data.
Contoh Mendeklarasikan Variabel
Pertanyaan: Dengan 'AS'
DECLARE @COURSE_ID AS INT;
Pertanyaan: Tanpa 'AS'
DECLARE @COURSE_NAME VARCHAR (10);
Kueri: DEKLARASIkan dua variabel
DECLARE @COURSE_ID AS INT, @COURSE_NAME VARCHAR (10);
Menetapkan nilai ke Variabel SQL
Anda dapat menetapkan nilai ke sebuah variabel dengan tiga cara berikut:
- Saat mendeklarasikan variabel menggunakan kata kunci DECLARE.
- Menggunakan SET.
- Menggunakan SELECT.
Mari kita lihat ketiga cara tersebut secara detail.
Pada saat deklarasi variabel menggunakan kata kunci DECLARE
Sintaks T-SQL:
DECLARE { @Local_Variable [AS] Datatype [ = value ] }
Di sini, setelah tipe data, Anda dapat menggunakan '=' diikuti dengan nilai yang akan diberikan.
Query:
DECLARE @COURSE_ID AS INT = 5 PRINT @COURSE_ID
Menjalankan kueri akan mencetak nilai yang ditetapkan selama deklarasi, seperti yang ditunjukkan di bawah ini.
Menggunakan Variabel SQL SET
Terkadang Anda ingin memisahkan deklarasi dan inisialisasi. Perintah SET memberikan nilai pada variabel setelah dideklarasikan. Berikut adalah berbagai cara untuk memberikan nilai menggunakan SET.
Contoh: Memberikan nilai pada sebuah variabel menggunakan SET
sintaks:
DECLARE @Local_Variable <Data_Type> SET @Local_Variable = <Value>
Query:
DECLARE @COURSE_ID AS INT SET @COURSE_ID = 5 PRINT @COURSE_ID
Menjalankan skrip akan mengembalikan nilai yang ditetapkan dengan SET, seperti yang ditunjukkan di bawah ini.
Contoh: Memberikan nilai pada beberapa variabel menggunakan SET
sintaks:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable_2 <Data_Type>, SET @Local_Variable_1 = <Value_1> SET @Local_Variable_2 = <Value_2>
Aturan: Satu kata kunci SET hanya dapat menetapkan nilai ke satu variabel.
Query:
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SET @COURSE_ID = 5 SET @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
Kedua pernyataan PRINT mengembalikan kedua nilai yang ditetapkan, seperti yang ditunjukkan di bawah ini.
Contoh: Memberikan nilai pada variabel dengan subkueri skalar menggunakan SET
sintaks:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable_2 <Data_Type>,SET @Local_Variable_1 = (SELECT <Column_1> from <Table_Name> where <Condition_1>)
Aturan:
- Sertakan pertanyaan dalam tanda kurung.
- Kueri tersebut harus berupa kueri skalar, artinya hanya mengembalikan satu baris dan satu kolom. Jika tidak, kueri akan menghasilkan kesalahan.
- Jika kueri mengembalikan nol baris, maka variabel tersebut diatur ke KOSONG, yaitu NULL.
Anggaplah kita memiliki tabel bernama 'GuruTabel 99' dengan dua kolom, seperti yang ditampilkan di bawah ini. Tabel ini digunakan dalam contoh-contoh berikut.
Contoh 1: Ketika subkueri mengembalikan satu baris sebagai hasil
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 3) PRINT @COURSE_NAME
Karena subkueri mengembalikan satu baris yang cocok, variabel tersebut menerima nilai tersebut, seperti yang ditunjukkan di bawah ini.
Contoh 2: Ketika subkueri mengembalikan nol baris sebagai hasil
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
Karena subkueri tidak mengembalikan baris apa pun, nilai variabelnya KOSONG, yaitu NULL, sehingga tidak ada yang tercetak, seperti yang ditunjukkan di bawah ini.
Menggunakan Variabel SQL SELECT
Sama seperti SET, Anda juga dapat menggunakan SELECT untuk menetapkan nilai ke variabel setelah mendeklarasikannya dengan DECLARE. Berikut adalah berbagai cara untuk menetapkan nilai menggunakan SELECT.
Contoh: Memberikan nilai pada variabel menggunakan SELECT
sintaks:
DECLARE @LOCAL_VARIABLE <Data_Type> SELECT @LOCAL_VARIABLE = <Value>
Query:
DECLARE @COURSE_ID INT SELECT @COURSE_ID = 5 PRINT @COURSE_ID
Perintah SELECT mencetak nilainya, seperti yang ditunjukkan di bawah ini.
Contoh: Memberikan nilai pada beberapa variabel menggunakan SELECT
sintaks:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Value_1>, @Local_Variable _2 = <Value_2>
Aturan: Berbeda dengan SET, SELECT dapat menetapkan nilai ke beberapa variabel yang dipisahkan oleh koma.
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SELECT @COURSE_ID = 5, @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
Kedua variabel tersebut ditetapkan dalam satu pernyataan SELECT, seperti yang ditunjukkan di bawah ini.
Contoh: Memberikan nilai ke variabel dengan subkueri menggunakan SELECT
sintaks:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = (SELECT <Column_1> from <Table_name> where <Condition_1>)
Aturan:
- Sertakan pertanyaan dalam tanda kurung.
- Kueri tersebut harus berupa kueri skalar yang mengembalikan satu baris dan satu kolom. Jika tidak, kueri akan menghasilkan kesalahan.
- Jika kueri mengembalikan nol baris, maka variabel tersebut KOSONG, yaitu NULL.
Pertimbangkan kembali 'GuruMeja 99'.
Contoh 1: Ketika subkueri mengembalikan satu baris sebagai hasil
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 1) PRINT @COURSE_NAME
Subkueri tersebut mengembalikan satu baris, sehingga variabel tersebut menyimpan nilai tersebut, seperti yang ditunjukkan di bawah ini.
Contoh 2: Ketika subkueri mengembalikan nol baris sebagai hasil
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
Jika tidak ada baris yang cocok, variabel tetap KOSONG, yaitu NULL, seperti yang ditunjukkan di bawah ini.
Contoh 3: Memberikan nilai pada variabel dengan pernyataan SELECT biasa
sintaks:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Column_1> from <Table_name> where <Condition_1>
Aturan:
- Berbeda dengan SET, jika kueri mengembalikan beberapa baris, maka nilai variabel akan diatur ke nilai baris terakhir.
- Jika kueri mengembalikan nol baris, maka variabel tersebut diatur ke KOSONG, yaitu NULL.
Kueri 1: Kueri mengembalikan satu baris
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 3 PRINT @COURSE_NAME
Baris yang cocok tunggal tersebut menetapkan nilai variabel, seperti yang ditunjukkan di bawah ini.
Kueri 2: Kueri mengembalikan beberapa baris
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 PRINT @COURSE_NAME
Jika beberapa baris cocok, variabel tersebut akan menyimpan nilai dari baris terakhir, seperti yang ditunjukkan di bawah ini.
Kueri 3: Kueri mengembalikan nol baris
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 5 PRINT @COURSE_NAME
Jika tidak ada baris yang cocok, variabel tersebut KOSONG, yaitu NULL, seperti yang ditunjukkan di bawah ini.
Contoh Variabel SQL Lainnya
Variabel yang dideklarasikan juga dapat digunakan di dalam kueri, misalnya dalam klausa WHERE untuk memfilter baris.
Query:
DECLARE @COURSE_ID Int = 1 SELECT * from Guru99 where Tutorial_id = @COURSE_ID
Variabel tersebut menyaring kueri dan mengembalikan baris yang sesuai, seperti yang ditunjukkan di bawah ini.
Fakta Menarik Tentang Variabel SQL Server!
- Variabel lokal dapat ditampilkan menggunakan perintah PRINT maupun SELECT.
- Tipe data tabel tidak mengizinkan penggunaan 'AS' selama deklarasi.
- SET mematuhi standar ANSI, sedangkan SELECT tidak.
- Membuat variabel lokal bernama @ juga diperbolehkan. Misalnya, dapat dideklarasikan sebagai:
'DECLARE @@ as VARCHAR (10)'















