Supponendo che si sta utilizzando SQL 2005 o successivo:
SELECT dbo.a, dbo.b, dbo.c, ROW_NUMBER() OVER(ORDER BY GETDATE()) AS d
per ordinare le righe come vengono restituite dal DB. Se si desidera specificare un ordine si può fare così:
SELECT dbo.a, dbo.b, dbo.c, ROW_NUMBER() OVER(ORDER BY dbo.a) AS d
Per SQL 2000 e versioni precedenti è necessario un valore unico per ordinare da:
SELECT dbo.a, dbo.b, dbo.c, (SELECT COUNT(*) FROM dbo d2 WHERE d2.a <= dbo.a) AS d
FROM dbo
o se non avete bisogno di un singolo SELEZIONA :
SELECT IDENTITY(int,1,1) ID, dbo.a, dbo.b, dbo.c
INTO #Temp
FROM dbo
SELECT * FROM #Temp
fonte
2012-01-19 20:00:35
SQL Server 2000 dovrebbe essere in pensione presto - anche la versione 2005 non è ufficialmente supportato da MS più .... –