CUCEKO.NET ▌ 83/1 PK FARM SERVER ▌ FULL İTEM BAŞLANGIÇ ▌ OFFICIAL: 29.03.2024 / SAAT 22:000
Cuceko
Cuceko

Tablonuzdaki tekrar kayıtlarını temizlemek

  •         

            

            

            

            

  • HyperFilter | DoS Protection | DDoS Protection | DoS Mitigation | DDoS Mitigation | AntiDoS | AntiDDoS | Proxy Shielding
E Çevrimdışı
11 Ocak 2012
12,856
101
63
Tekrar eden kayıtları tespit edip, temizlemeye yarar. İşlemi yaptıktan sonra primary key kullanmanızı öneririm özellikle item ve magic tablolarınız için.



Kırmızı bölgelere veritabanınızın adı.

Mavi bölgelere temizlenecek tablonuzun adı.

Turuncu bölgelere çift değerlerin kontrol edileceği sutun.



Yedeğinizi mutlaka alın.



Öncelikle tekrar eden kayıtlara bir göz atalım, çıkan sonuçta dublicate sutunu tekrar sayısını verir. Eğer tekrar sayınız örneğin 3 ise tekrar eden 2''sini temizler.

Gizli içerik
Bu içeriği görmek için cevap yazmalısınız.


Ve işlemimiz.

Kod:
USE [COLOR="Red"]KO_S1[/COLOR]

GO



DECLARE @Count int = 0, @MagicID int



DECLARE Dublicate CURSOR FAST_FORWARD FOR



SELECT [COLOR="DarkOrange"]iNum[/COLOR], COUNT([COLOR="DarkOrange"]iNum[/COLOR]) - 1 FROM [COLOR="blue"]MAGIC_TYPE4[/COLOR] GROUP BY [COLOR="DarkOrange"]iNum[/COLOR] HAVING COUNT([COLOR="DarkOrange"]iNum[/COLOR]) > 1



OPEN Dublicate



FETCH NEXT FROM Dublicate INTO @MagicID, @Count



WHILE @@FETCH_STATUS = 0

BEGIN

	SET ROWCOUNT @Count

	DELETE FROM [COLOR="blue"]MAGIC_TYPE4[/COLOR] WHERE [COLOR="DarkOrange"]iNum[/COLOR] = @MagicID

	SET ROWCOUNT 0

	FETCH NEXT FROM Dublicate INTO @MagicID, @Count

END



CLOSE Dublicate 

DEALLOCATE Dublicate



Farklı çeşitlerini isteyen olursa konu altından belirtebilir. Birden fazla sutunun kontrol edilmesi gibi.



Ek olarak karakter veri tiplerine sahip sutunlar için (TB_USER)

Kod:
USE KO_MAIN

GO



DECLARE @Count int = 0, @CheckID varchar(21)



DECLARE Dublicate CURSOR FAST_FORWARD FOR



SELECT strAccountID, COUNT(strAccountID) - 1 FROM TB_USER GROUP BY strAccountID HAVING COUNT(strAccountID) > 1



OPEN Dublicate



FETCH NEXT FROM Dublicate INTO @CheckID, @Count



WHILE @@FETCH_STATUS = 0

BEGIN

	SET ROWCOUNT @Count

	DELETE FROM TB_USER WHERE strAccountID = @CheckID

	SET ROWCOUNT 0

	FETCH NEXT FROM Dublicate INTO @CheckID, @Count

END



CLOSE Dublicate 

DEALLOCATE Dublicate
[/QUOTE]
 
H Çevrimdışı

hayalc

Kayıtlı Üye
11 Mayıs 2012
337
5
18
Cevap: Tablonuzdaki tekrar kayıtlarını temizlemek



Teşekkürler
 
I Çevrimdışı

istanbul

Kayıtlı Üye
27 Mart 2012
239
0
16
Cevap: Tablonuzdaki tekrar kayıtlarını temizlemek



eskidende vardı böyle bir editör item tablosu için.
 
X Çevrimdışı

Xat

Kayıtlı Üye
11 Mayıs 2014
396
0
16
29
Cevap: Tablonuzdaki tekrar kayıtlarını temizlemek



Tesekkürler...