En supposant que vous utilisez SQL 2005 ou ultérieur:
SELECT dbo.a, dbo.b, dbo.c, ROW_NUMBER() OVER(ORDER BY GETDATE()) AS d
pour ordonner les lignes telles qu'elles sont renvoyées à partir du DB. Si vous souhaitez spécifier un ordre dans lequel vous pouvez le faire:
SELECT dbo.a, dbo.b, dbo.c, ROW_NUMBER() OVER(ORDER BY dbo.a) AS d
Pour SQL 2000 et plus tôt vous avez besoin d'une valeur unique à l'ordre par:
SELECT dbo.a, dbo.b, dbo.c, (SELECT COUNT(*) FROM dbo d2 WHERE d2.a <= dbo.a) AS d
FROM dbo
ou si vous n'avez pas besoin d'un seul SELECT :
SELECT IDENTITY(int,1,1) ID, dbo.a, dbo.b, dbo.c
INTO #Temp
FROM dbo
SELECT * FROM #Temp
SQL Server 2000 devrait être retiré rapidement - même la version 2005 n'est pas officiellement pris en charge par MS plus .... –