Я вижу несколько проблем с вашим обновлением.Во-первых, я не вижу никаких критериев соединения или выбора для обновляемой таблицы.Это означает, что каждая строка в таблице будет обновлена с этим новым значением.Вы действительно этого хотите?
Во-вторых, номер строки между тем, что находится в графическом интерфейсе, и тем, что вы возвращаете в базу данных, может не совпадать.Даже если вы воспроизводите запрос, использованный для создания вашего списка в графическом интерфейсе пользователя (который в любом случае опасен, поскольку требует постоянного обновления и синхронизации кода выбора), возможно, кто-то может вставить или удалить или обновить строку между временемчто вы заполняете свой список и отправляете этот номер строки на сервер для обновления.Гораздо лучше использовать PK (вероятно, идентификаторы в вашем случае), чтобы определить, какую строку использовать для обновления.
Тем не менее, я думаю, что следующее будет работать для вас (не проверено):
;WITH cte AS (
SELECT
txtPageContent,
ROW_NUMBER() OVER (ORDER BY ArchiveDate ASC) AS rowid
FROM
ARC_Content
WHERE
ContentID = @ContentID)
UPDATE
TC
SET
txtPageContent = cte.txtPageContent
FROM
TBL_Content TC
INNER JOIN cte ON
rowid = @rowID