gunakan kursor
TAMBAHAN:[Contoh kursor MS SQL]
declare @field1 int
declare @field2 int
declare cur CURSOR LOCAL for
select field1, field2 from sometable where someotherfield is null
open cur
fetch next from cur into @field1, @field2
while @@FETCH_STATUS = 0 BEGIN
--execute your sproc on each row
exec uspYourSproc @field1, @field2
fetch next from cur into @field1, @field2
END
close cur
deallocate cur
di MS SQL, ini contoh artikelnya
perhatikan bahwa kursor lebih lambat dari operasi berbasis set, tetapi lebih cepat dari loop sementara manual; lebih detail dalam pertanyaan SO ini
TAMBAHAN 2:jika Anda akan memproses lebih dari beberapa catatan, tarik ke dalam tabel temp terlebih dahulu dan jalankan kursor di atas tabel temp; ini akan mencegah SQL meningkat menjadi kunci tabel dan mempercepat operasi
TAMBAHAN 3:dan tentu saja, jika Anda dapat menyelaraskan apa pun yang dilakukan prosedur tersimpan Anda ke setiap ID pengguna dan menjalankan semuanya sebagai satu pernyataan pembaruan SQL, itu akan optimal