Предполагается, что вы используете SQL 2005 или более позднюю версию:
SELECT dbo.a, dbo.b, dbo.c, ROW_NUMBER() OVER(ORDER BY GETDATE()) AS d
, чтобы упорядочить строки, возвращаемые из БД.Если вы хотите указать заказ, вы можете сделать это:
SELECT dbo.a, dbo.b, dbo.c, ROW_NUMBER() OVER(ORDER BY dbo.a) AS d
Для SQL 2000 и более ранних версий вам нужно уникальное значение для заказа по:
SELECT dbo.a, dbo.b, dbo.c, (SELECT COUNT(*) FROM dbo d2 WHERE d2.a <= dbo.a) AS d
FROM dbo
или, если вы этого не сделаетенужен один SELECT:
SELECT IDENTITY(int,1,1) ID, dbo.a, dbo.b, dbo.c
INTO #Temp
FROM dbo
SELECT * FROM #Temp