Silme İşlemlerinde Etkilenecek Kayıt Sayısını Belirlemek

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Silme İşlemlerinde Etkilenecek Kayıt Sayısını Belirlemek

Mesaj gönderen pro_imaj »

Merhaba;

Silme işlemlerinde veya güncelleme işlemlerinde etkilenecek Max kayıt sayısını nasıl belirleyebiliriz.

Seçme sorgusunda ki gibi

Kod: Tümünü seç

Select Top 20 From Database
Bunu Silme veya Güncelleme için

Kod: Tümünü seç

Delete From Database 
Ekilenecek Max kayıt 30

Saygılarımla
Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba,
Şöyle benzer bir yol izleyerek limitli silme işlemini yapabilirsin,

Kod: Tümünü seç

DELETE FROM TABLO WHERE TABLO.ID IN (SELECT TOP 10 TABLO.ID FROM TABLO)
Kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba;

Cvp için teşekkür ederim.

İstediğim oldu evt ama iç içe sql sorgusu olmuş oldu bu şekilde. Mssql buna eşdeğer bir komutu olmalı (mysql Limit komutuna eşdeğer) şu an aklıma gelmiyor ben varolduğundan eminim daha önce kullanmıştım çünki.

Hız olarak Query analeyzer'da 70.000 kayıt ta bu şekilde 10 kayıt silmek istediğimde 44 sn işlem neticelendi.

Saygılarımla
Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

pro_imaj yazdı:Merhaba;
Hız olarak Query analeyzer'da 70.000 kayıt ta bu şekilde 10 kayıt silmek istediğimde 44 sn işlem neticelendi.
ilgili alanda index yoksa fazla kayıtta hız sorunu olur, index eklerseniz sorun düzelmeli mimari olarak.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Kod: Tümünü seç

delete TOP (20) PERCENT  FROM tablom
20 ibarisi tablodaki veri sayısının % 20 si şeklinde
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Conari'nin verdiği koddaki PERCENT kelimesini çıkartırsan istediğin oluyor:

Kod: Tümünü seç

delete TOP (20) FROM tablom
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba;

Kod: Tümünü seç

delete TOP (20) FROM barkod
Ben de çalışmıyor !

Kod: Tümünü seç

Incorrect syntax near the keyword 'TOP'.
Hatası alıyorum. Percent ilede aynı hatayı alıyorum siz denedinizmi acaba?

Saygılarımla
Teşekkürler
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Test edip yazmıştım. Hatta tablo tamamen boşalana kadar test ettim.

Yalnız benim SQL Server 2005. Belki seninki 2000'dir. 2005'in helpinde aynı komut mevcut. Örnek de vermişler.

İyi çalışmalar.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Hakan Can yazdı:Test edip yazmıştım. Hatta tablo tamamen boşalana kadar test ettim.

Yalnız benim SQL Server 2005. Belki seninki 2000'dir. 2005'in helpinde aynı komut mevcut. Örnek de vermişler.

İyi çalışmalar.
Evt 2000 bendeki sanırım 2000 desteklemiyor :(
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Cevapla