Query untuk mencari kolom berdasarkan value
Malam yang dingin, diiringi kopi hangat, suasana yang sangat cocok untuk berbagi. Hari ini saya mendapatkan sebuah request untuk mencari tahu mengapa permasalahan beberapa data yang diminta oleh client. Namun, saya bukan ingin membahas permasalahan apa yang terjadi, tapi dalam pencarian permasalahan tersebut saya dihadapkan pada sebuah permasalahan lain. Apakah itu? Jreng…jreng…hehe…
Yuph, data yang saya dapat ini berada pada tabel apa sih? Kalaupun dapat tabelnya, di kolom apa? Saya pun berinisiatif untuk membuat sebuah Stored Procedure untuk memecahkan masalah saya itu. Nah, pada tulisan saya kali ini, saya ingin membagikan Stored Procedure yang telah saya buat tersebut. Mungkin bisa jadi teman-teman mengalami permasalahan yang sama. Berikut query full Stored Procedure saya :
Di sini coba saya jelaskan beberapa parameter yang digunakan dalam Stored Procedure tersebut :
- DatabaseName : Parameter ini sifatnya mandatory. Teman-teman harus mengisi pencarian data tersebut akan dilakukan pada database apa.
- Value : Parameter ini bersifat optional dengan default value nya string kosong. Parameter ini diisi dengan value yang akan dicari.
- TableName : Parameter ini bersifat optional dengan default value nya null. Parameter ini diisi dengan nama tabel tempat akan dilakukan pencarian. Bila teman-teman tidak menggunakan parameter ini, maka secara default pencarian dilakukan pada semua tabel yang ada pada database yang teman-teman isi.
- TableSchemaName : Parameter ini bersifat optional dengan default value nya dbo. Parameter ini diisi dengan nama skema tabel tempat akan dilakukan pencarian.
Untuk contoh cara penggunaannya saya akan membagi dengan beberapa case berikut :
- Kita ingin mencari data dengan value ‘Pusporenggo’ di database Akademik berada pada kolom dan tabel apa. Pencarian dilakukan pada semua tabel dengan schema default yakni dbo, sehingga kita dapat mengetahui semua table beserta kolomnya yang memiliki value tersebut. Maka perintahnya akan menjadi berikut :
Dan hasilnya akan seperti berikut :
Maka jika kita lakukan perintah SELECT dengan filter pada kolom tersebut di tabel tersebut, maka hasilnya akan seperti berikut :
- Kita ingin mencari data dengan value ‘Pusporenggo’ di database Akademik berada pada kolom apa. Pencarian dilakukan pada tabel siswa dengan schema default yakni dbo, sehingga kita dapat mengetahui semua kolom yang memiliki value tersebut. Maka perintahnya akan menjadi berikut :
Dan hasilnya akan seperti berikut :
Maka jika kita lakukan perintah SELECT dengan filter pada kolom tersebut di tabel tersebut, maka hasilnya akan seperti berikut :
Bila teman-teman kesulitan untuk menyalin query Stored Procedure saya, teman-teman juga dapat melakukan download querynya pada link berikut :
https://drive.google.com/file/d/1ZydC2zpmp1wSlAyh0ZIfOCuEHCNUJHWo/view?usp=sharing
Akhir kata, semoga tulisan saya dapat bermanfaat khususnya bagi yang mengalami permasalahan yang sama. Terima kasih dan selamat beristirahat…. 😀