utorak, 1. prosinca 2009.

Redni broj iliti ROW COUNT

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...

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,@Col
B
END

CLOSE @MyCursor
DEALLOCATE @MyCursor



Eto tako se vrlo jednostavno rjesavamo duplih recorda...



DELETE DUPLICATE RECORDS (za ove strance, nebil slucajno nekom zatrebalo)