SORU
20 Mayıs 2009, ÇARŞAMBA


Nasıl bir zamanlar her satır sorgu tarafından döndürülen saklı bir yordamı çalıştırmak mı?

Belirli bir şekilde kullanıcı veri değiştiren bir saklı yordam var. Bu user_id geçtim ve o şeyi yapar. Bir tabloda bir sorgu çalıştırmak istiyorum ve her user_id ben o user_id kez saklı yordamı çalıştırmak bulun

Nasıl bu sorgu yazıyorum?

SQL SERVER

CEVAP
20 Mayıs 2009, ÇARŞAMBA


bir imleç kullanın

EK: [MS SQL imleç örnek]

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

MS SQL, here's an example article

imleç-tabanlı işlemler daha yavaş, ama döngü; detaylar 3 ** manuel daha hızlı olduğunu unutmayın

EK 2: varsa işlem sadece bir kaç kayıtları, Çek içine bir temp tablo ilk ve çalıştır imleç üzerindeki geçici tablo; bu-ecek önlemek SQL tırmanan tablo-kilitler ve hızlı işlem

EK 3: ve tabii ki, eğer saklı yordam her kullanıcı KİMLİĞİ için her ne yapıyorsa satır ve tek bir SQL update ifadesi olarak her şeyi çalıştırabilirsiniz eğer, bu en iyi olurdu

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fr. Eckle Studios

    Fr. Eckle St

    29 Kasım 2006
  • oHeymarvin

    oHeymarvin

    11 Temmuz 2013
  • Xbox

    Xbox

    1 Kasım 2005