Belirli bir sayıdaki kayıt kümesini elde etmek için SELECT TOP N ... yapısını kullanırdık. Peki belirli bir sayıdaki kayıt kümesini nasıl sileceğiz? Bunun için DELETE TOP N ... yapısını kullanacağız.
Diyelim ki siparis tablomuzdan belirli bir tarihten önceki ilk 100 kayıtı silmek isteyelim.
DELETE TOP (100)
FROM Siparis
WHERE Tarih<'20071121'
Bu sorgu aslında şu manaya gelir: 11 Kasım 2007 tarihinden önceki ilk 100 kayıtlık bir veri kümesinin bir alt sorgudan gelen değerlerini sil. Yani aynı sorguyu aşağıdaki kodla da yapabilirdik:
DELETE FROM Siparis
WHERE SiparisID IN
(SELECT TOP 100 SiparisID
FROM Siparis
ORDER BY Tarih)
Herhangi bir koşul yada sıralama değerine göre silme yapmazsanız SQL Server rastgele kayıtları siler. Sizin için hayati öneme haiz kayıtlarınızın silinmesini istemiyorsanız siz siz olun kayıtlarınızı silmek için kullandığınız kodu en az 2 kez gözden geçirin:)
Aynı mantığı UPDATE komutu için de kullanabilirsiniz:
UPDATE TOP (100)
FROM Siparis
WHERE Tarih<'20071121'
Aynı şekilde TOP anahtar sözcüğünü INSERT cümleciği içinde uygulayabilirsiniz.
Hiç yorum yok:
Yorum Gönder