Я храню данные о ценах финансовых инструментов в таблице. Поскольку для одной и той же метки времени может быть несколько событий, первичный ключ моей таблицы состоит из символа, метки времени и поля «порядок». При вставке строки поле порядка должно быть нулевым, если нет других строк с такой же отметкой времени и символом. В противном случае это должен быть еще один максимальный порядок для той же временной метки и символа.
В более старой версии базы данных используется другая схема. Он имеет уникальный Guid для каждой строки в таблице, а затем имеет символ и метку времени. Таким образом, он не сохраняет порядок среди нескольких тиков с одной и той же отметкой времени.
Я хочу написать сценарий T-SQL для копирования данных из старой базы данных в новую. Я хотел бы сделать что-то вроде этого:
INSERT INTO NewTable (Symbol, Timestamp, Order, OtherFields)
SELECT OldTable.Symbol, OldTable.TimeStamp, <???>, OldTable.OtherFields
FROM OldTable
Но я не уверен, как выразить то, что я хочу, для поля «Порядок», или если вообще возможно сделать это таким образом.
Каков наилучший способ выполнить это преобразование данных?
Я хочу, чтобы это работало на SQL Server 2005 или 2008.