Ovo je vezano za sve nesretnike koji rade na serveru mssql 2000.
Zanimljiv nacin za prevazilazenje nedostatka servera.
Ukoliko vam je potreban u rezultatu i broj reda u koloni evo nacina kako se to moze dobiti...
select IDENTITY(int,1,1) AS [Row Number],* INTO #Temp
from TABLE
order by column
select * from #Temp
drop table #Temp
Zatrebalo i ovo...
utorak, 1. prosinca 2009.
Brisanje duplih podataka iz tablice....
Bio je to jedan lijep i suncan dan. Samo sto ga je moglo pokvariti su dupli podaci po tablicama, i eto desi se tako.
Puna tablica podataka a ne meres udarit kljuc nikako, ima hin sa istim vremenom nastanka podatka, sto se ujedno jeli i nametnulo kao kljuc tabele.
Nakon sto se editovao jedan cijeli excel file, reko stanite ljudi ne mere ovo vako.
I tako vratim se ja starom dobrom sql-u i nakon malo napornog rada dodjem to otkrica dana.
Rezultat je sljedeci kratki kod, koji je ustedio par dana rada...
DECLARE @colA datetime
DECLARE @colB int
DECLARE @MyCursor CURSOR
SET @MyCursor = CURSOR FAST_FORWARD
FOR
select pkColumn,count(pkColumn)-1
from TABLE
group by pkColumn
having count(pkColumn)>1
OPEN @MyCursor
FETCH NEXT
FROM @MyCursor
INTO @ColA,@ColB
WHILE @@FETCH_STATUS = 0
BEGIN
set rowcount @ColB
delete TABLE
where pkColumn=@ColA
FETCH NEXT
FROM @MyCursor
INTO @ColA,@ColB
END
CLOSE @MyCursor
DEALLOCATE @MyCursor
Eto tako se vrlo jednostavno rjesavamo duplih recorda...
DELETE DUPLICATE RECORDS (za ove strance, nebil slucajno nekom zatrebalo)
Puna tablica podataka a ne meres udarit kljuc nikako, ima hin sa istim vremenom nastanka podatka, sto se ujedno jeli i nametnulo kao kljuc tabele.
Nakon sto se editovao jedan cijeli excel file, reko stanite ljudi ne mere ovo vako.
I tako vratim se ja starom dobrom sql-u i nakon malo napornog rada dodjem to otkrica dana.
Rezultat je sljedeci kratki kod, koji je ustedio par dana rada...
DECLARE @colA datetime
DECLARE @colB int
DECLARE @MyCursor CURSOR
SET @MyCursor = CURSOR FAST_FORWARD
FOR
select pkColumn,count(pkColumn)-1
from TABLE
group by pkColumn
having count(pkColumn)>1
OPEN @MyCursor
FETCH NEXT
FROM @MyCursor
INTO @ColA,@ColB
WHILE @@FETCH_STATUS = 0
BEGIN
set rowcount @ColB
delete TABLE
where pkColumn=@ColA
FETCH NEXT
FROM @MyCursor
INTO @ColA,@ColB
END
CLOSE @MyCursor
DEALLOCATE @MyCursor
Eto tako se vrlo jednostavno rjesavamo duplih recorda...
DELETE DUPLICATE RECORDS (za ove strance, nebil slucajno nekom zatrebalo)
Pretplati se na:
Komentari (Atom)