Sql Server – Tablolarımızda Aynı Kayıtları Bulup Silelim

Bizim veya müşterilerimizin tablolarında verilerin tekrar etmesi istenmeyen bir durumdur. Özellikler ürünler tablosunda aynı kategoride aynı ürünün birden fazla olması hepten istenmeyen vahim bir durumdur. Bu gibi konularda aşağıdaki sorgular ile tekrar eden kayıtları bulup silebilirsiniz.

Not: Özellikle aktif olarak kullanılan veritabanlarında ne kadar çalıştığından çok emin olduğunuz bir update – delete komutunu yedek almadan çalıştırmayınız. Her ne kadar yedek almak için beklemek sıkıcı olsa da olası bir kötü durumda sorunu çözmek için kat be kat daha sıkılabilirsiniz. Benden söylemesi.

[sql]

— Aynı Kayıtların Bulunması için
SELECT MAX(ProductID) as ID, ProductName, CategoryID FROM Products
GROUP BY ProductName, CategoryID
HAVING COUNT(*) > 1

— Aynı Kayıtların Silinmesi için
DELETE FROM Products
WHERE ProductID IN
( SELECT MAX(ProductID) FROM Products
GROUP BY ProductName, CategoryID
HAVING COUNT(*) > 1)

 

[/sql]

Mesut Güneş

Selçuk Üniversitesi Bilgisayar programcılığı bölümünden mezun olduktan sonra birçok firmada Yazılım, İş zekası ve Veritabanı Uzmanı olarak çalıştım. Şuan Türkiye’nin en büyük şirketlerinden biri olan Doğan Online’da Veritabanı Yöneticisi olarak çalışıyorum.

You may also like...

1 Response

  1. Ekrem ÜNal dedi ki:

    Elinize sağlık Mesut bey. çok işime yaradı.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.