Если у вас есть первичный ключ, вы можете использовать этот метод в SQL Server 2005 и выше:
SELECT
ROW_NUMBER() OVER (ORDER BY PrimaryKeyField) as RowNumber,
Field1,
Field2
FROM
YourSourceTable
Если у вас нет первичного ключа, вам может потребоваться скопировать вашу таблицу в таблицу mermory (или временную таблицу, если она очень большая), используя такой метод:
DECLARE @NewTable table (
RowNumber BIGINT IDENTITY(1,1) PRIMARY KEY,
Field1 varchar(50),
Field2 varchar(50),
)
INSERT INTO @NewTable
(Field1, Field2)
SELECT
Field1,
Field2
FROM
YourSourceTable
SELECT
RowNumber,
Field1,
Field2
FROM
@NewTable
Приятной особенностью этого является то, что вы сможете обнаруживать идентичные строки, если ваша исходная таблица не имеет первичного ключа.
Кроме того, на этом этапе я бы предложил добавить первичный ключ к каждой вашей таблице, если у них ее еще нет.