SQL Server 2005: обновление одной записи из двух идентичных записей - PullRequest
1 голос
/ 19 мая 2010

У меня есть 2 записи в таблице в базе данных SQL Server 2005, которая имеет точно такие же данные. Я хочу обновить одну запись. Есть ли возможность это сделать? К сожалению, в этой таблице нет столбца идентификаторов, и я не могу использовать прямой запрос на обновление, поскольку оба будут обновлены, поскольку данные одинаковы. В любом случае, там используется rowid или что-то в SQL сервер 2005?

Ответы [ 2 ]

5 голосов
/ 19 мая 2010

Мне не очень нравится оператор TOP, но:

UPDATE top (1) MyTable
 set Data = '123'
 where Data = 'def'

Действительно, вы хотите иметь первичные ключи в своих таблицах, чтобы избежать именно такой ситуации, даже если они являются просто суррогатными значениями идентичности.

2 голосов
/ 19 мая 2010

Я бы добавил столбец идентификаторов в таблицу, а затем обновил бы этот столбец идентификаторов или обновил бы в зависимости от того, какой первичный ключ таблицы делает строку уникальной.

...