Remove Duplicate Row Pada MSSQL Data

Untuk tabel-tabel yang tidak memiliki primary key, sangat besar sekali kemungkinannya untuk menimbulkan duplikasi data.

Tentu saja hal ini akan mengakibatkan validitas data menjadi tidak benar, ini ada script untuk menghilangkan data yg duplikat,  moga-moga berguna :

Caranya :

  1. Jalankan script berikut di query analyzer untuk membuat prosedir dengan nama “Usp_deleteDupValues” (dengan catatan : Rubah nama tabel dan nama kolom sesuai kebutuhan).

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

Create procedure Usp_deleteDupValues as

DECLARE csr1 CURSOR FOR
SELECT Col1, Col2, COUNT(*)
FROM mytesttable — tentukan tabel yg recordnya duplicate
GROUP BY Col1, Col2
HAVING COUNT(*) > 1 –filter hanya yg duplicate (>1)
FOR READ ONLY

DECLARE @Col1 INT
DECLARE @Col2 INT
DECLARE @count INT
OPEN csr1
FETCH NEXT FROM csr1 INTO @Col1, @Col2, @count

WHILE @@FETCH_STATUS <> -1
BEGIN
IF @@FETCH_STATUS <> -2
BEGIN
SET @count = @count – 1 –delete semua yg duplikat dan sisakan 1 baris
SET ROWCOUNT @count
DELETE FROM mytesttable — nama tabel yg sama seperti yg diatas

WHERE Col1 = @Col1 AND Col2 = @Col2
END –IF
FETCH NEXT FROM csr1 INTO @Col1, @Col2, @count
END –WHILE
CLOSE csr1
DEALLOCATE csr1
SET ROWCOUNT 0 –restore default semua row
GO

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

2.  Refresh Query Analyzer, lalu klik kanan pada prosedur “Usp_deleteDupValues”, pilih “Script Obaject to New Windows as Create”, lalu “Run” /  (F5), tunggu sampe selesai.

3. Slamet… data Anda sudah tidak duplicate lagi :D

 

Ok.. segitu dulu mengenai script untuk menghilangkan data duplicate, semoga
bermanfaat.

Kalau ada pertanyaan, silahkan kirim email aja, moga saya bisa membantu.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s