Apakah ada metode untuk mengimplementasikan do while
loop di SQL server 2008?
sql-server
sql-server-2008
loops
while-loop
do-while
Nithesh Narayanan
sumber
sumber
Jawaban:
Saya tidak yakin tentang DO-WHILE IN MS SQL Server 2008 tetapi Anda dapat mengubah logika loop WHILE Anda, sehingga dapat MENGGUNAKAN seperti DO-WHILE loop.
Contoh diambil dari sini: http://blog.sqlauthority.com/2007/10/24/sql-server-simple-example-of- While-loop-with-continue- and- break-keywords/
Tetapi cobalah untuk menghindari loop pada level database. Referensi .
sumber
Jika Anda tidak terlalu tersinggung dengan
GOTO
kata kunci tersebut, ini dapat digunakan untuk mensimulasikan aDO
/WHILE
dalam T-SQL. Pertimbangkan contoh yang agak tidak masuk akal berikut yang ditulis dalam pseudocode:Berikut adalah kode T-SQL yang setara menggunakan goto:
Perhatikan pemetaan satu lawan satu antara
GOTO
solusi yang diaktifkan dan yang asliDO
/WHILE
pseudocode. Implementasi serupa menggunakanWHILE
loop akan terlihat seperti:Sekarang, tentu saja Anda dapat menulis ulang contoh khusus ini sebagai
WHILE
loop sederhana , karena ini bukan kandidat yang baik untuk sebuahDO
/WHILE
konstruksi. Penekanannya adalah pada contoh singkatnya daripada penerapan, karena kasus sah yang membutuhkan aDO
/WHILE
jarang terjadi.REPEAT / UNTIL, siapa saja (TIDAK bekerja di T-SQL)?
... dan
GOTO
solusi berbasis di T-SQL:Melalui penggunaan kreatif
GOTO
dan inversi logika melaluiNOT
kata kunci, ada hubungan yang sangat erat antara kodesemu asli danGOTO
solusi berbasis. Solusi serupa menggunakanWHILE
loop terlihat seperti:Argumen dapat dibuat bahwa untuk kasus
REPEAT
/UNTIL
,WHILE
solusi berbasis lebih sederhana, karena kondisi if tidak terbalik. Di sisi lain juga lebih bertele-tele.Jika bukan karena semua penghinaan seputar penggunaan
GOTO
, ini bahkan mungkin menjadi solusi idiomatik untuk beberapa saat ketika konstruksi perulangan (jahat) khusus ini diperlukan dalam kode T-SQL demi kejelasan.Gunakan ini sesuai kebijaksanaan Anda, cobalah untuk tidak membuat marah sesama pengembang ketika mereka menangkap Anda menggunakan banyak fitnah
GOTO
.sumber
Sepertinya saya ingat pernah membaca artikel ini lebih dari sekali, dan jawabannya hanya mendekati yang saya butuhkan.
Biasanya ketika saya berpikir saya akan membutuhkan
DO WHILE
di T-SQL itu karena saya mengulang kursor, dan saya mencari kejelasan optimal (vs. kecepatan optimal). Di T-SQL yang sepertinya cocok denganWHILE TRUE
/IF BREAK
.Jika itu skenario yang membawa Anda ke sini, cuplikan ini dapat menghemat waktu Anda. Jika tidak, selamat datang kembali, saya. Sekarang saya yakin saya pernah ke sini lebih dari sekali. :)
Sayangnya, T-SQL tampaknya tidak menawarkan cara yang lebih bersih untuk mendefinisikan operasi loop secara tunggal, daripada loop tak terbatas ini.
sumber
Anda juga dapat menggunakan variabel keluar jika Anda ingin kode Anda sedikit lebih mudah dibaca:
Ini mungkin akan lebih relevan ketika Anda memiliki loop yang lebih rumit dan mencoba melacak logikanya. Seperti loop yang dinyatakan mahal, jadi coba dan gunakan metode lain jika Anda bisa.
sumber
Only While Loop secara resmi didukung oleh SQL server. Jawabannya sudah ada untuk DO while loop. Saya merinci jawaban tentang cara-cara untuk mencapai berbagai jenis loop di SQL server.
Jika Anda tahu, Anda harus menyelesaikan iterasi loop terlebih dahulu, kemudian Anda dapat mencoba versi SQL server DO..WHILE atau REPEAT..UNTIL .
DO..WHILE Loop
REPEAT..UNTIL Loop
UNTUK Loop
Referensi
sumber