2010-05-19 4 views
1

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

+0

Пожалуйста, не намеренно придумывайте новые теги, когда есть совершенно хорошие существующие. – skaffman

+0

@ skaffman: http://meta.stackexchange.com/questions/50088/official-repository-of-tag-synonyms (и да, я понимаю, что ваш комментарий не был направлен на меня) –

+1

@Jon: Я с нетерпением жду теги синонимы со значительным энтузиазмом ... – skaffman

ответ

2

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

+0

Нет идентификационного столбца. Все значения столбцов одинаковы – Shyju

+3

Согласен. Вам нужно добавить столбец, который каким-то образом делает его уникальным. Не может быть столбца идентификации, но вы должны добавить его. В противном случае, если все данные одинаковы, вы не можете сообщить об обновлении только для обновления. Возможно, вы можете настроить его, если хотите создать специальный вид или запрос, который вернул результат ТОП-1, но это, конечно, не самый простой способ сделать это. И я не уверен, что это будет успешным. – Thyamine

5

Я не очень люблю ТОП оператора, но:

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

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

+1

+1 для элегантности, чтобы иметь дело с дизайном sh1te. – gbn

 Смежные вопросы

  • Нет связанных вопросов^_^