Вот пример, основанный на данных в вашем вопросе:
-- Create a test table with test data in it
CREATE TABLE TestData([ID] int, [externalID] varchar(20), [Name] varchar(50), [AddedUTC] datetime);
INSERT INTO TestData ([ID], [externalID], [Name], [AddedUTC])
VALUES (123, NULL, 'John', '2019-09-19 15:14:11.837'),
(499, NULL, 'Lolita', '2019-09-18 19:58:29.320'),
(634, NULL, 'Susan', '2019-09-18 20:39:38.247');
-- Display the test data
SELECT * FROM TestData;
-- Do the update
WITH NumberedData AS (
SELECT ID, ROW_NUMBER() OVER (ORDER BY AddedUTC) AS RowNum
FROM TestData
)
UPDATE td
SET [externalID] = 'Legacy_' + CAST(RowNum AS varchar)
FROM TestData td
INNER JOIN NumberedData nd ON td.ID = nd.ID
-- Display updated data
SELECT * FROM TestData;
Если вы хотите сделать заказ по идентификатору, вы можете вместо этого заменить предложение ROW_NUMBER на «OVER (ORDER BY ID)».