ukulele
Datenbank-Guru
- Beiträge
- 5.314
Da ich es selbst immer wieder raus krame hier mal ein unter MS SQL sehr nützlicher Code. Will man per Schleife eine Tabelle oder eine Teilmenge davon durchlaufen die keine Zeilennummerierung (z.B. in Form eines fortlaufenden Integers) hat, kann man sich wie folgt behelfen:
Natürlich läßt sich die Sortierung beliebig ändern. Auch läßt sich OVER() für eine simple Zeilennummer nutzen:
Code:
DECLARE @pk UNIQUEIDENTIFIER,
@counter INT
SET @counter = ( SELECT count(1)
FROM tabelle )
WHILE @counter > 0
BEGIN
SET @pk = ( SELECT pk
FROM ( SELECT TOP (@counter) pk,
ROW_NUMBER() OVER (ORDER BY pk) AS zeilennr
FROM tabelle
WHERE pk = pk -- optionale WHERE-Bedigungen
ORDER BY pk ) x
WHERE x.zeilennr = @counter )
SELECT @pk,
@counter
SET @counter -= 1
END
Code:
SELECT pk,
ROW_NUMBER() OVER (ORDER BY pk) AS zeilennr
FROM tabelle
ORDER BY pk