Если это SQL-сервер Microsoft, вы можете использовать [dbcc checkident] (http://msdn.microsoft.com/en-us/library/ms176057(SQL.90).aspx)
Предположим, у вас есть одна таблица, в которой вы хотите перемещаться по данным вместе с перенумерацией первичных ключей. Например, имя таблицы ErrorCode . Он имеет два поля: ErrorCodeID (который является первичным ключом) и Описание .
Пример кода с использованием dbcc checkident
-- Reset the primary key counter
dbcc checkident(ErrorCode, reseed, 7000)
-- Move all rows greater than 8000 to the 7000 range
insert into ErrorCode
select Description from ErrorCode where ErrorCodeID >= 8000
-- Delete the old rows
delete ErrorCode where ErrorCodeID >= 8000
-- Reset the primary key counter
dbcc checkident(ErrorCode, reseed, 8000)
В этом примере вы фактически переместите все строки на другой первичный ключ, а затем сбросите их, чтобы при следующей вставке использовался идентификатор 8000.
Надеюсь, это немного поможет!