我在SQL Server 2005 db中的表中有2条记录,它们具有完全相同的数据。 我想要更新一条记录。无论如何要做它?不幸的是这个表没有标识列,我不能使用直接更新查询,因为两者都会更新,因为数据是相同的。无论如何在那里使用rowid或SQL中的东西server 2005?
答案 0 :(得分:5)
我不太喜欢TOP运营商,但是:
UPDATE top (1) MyTable
set Data = '123'
where Data = 'def'
实际上,您希望在表上使用主键以避免这种情况,即使它们只是身份代理值。
答案 1 :(得分:2)
我会在表中添加一个标识列,然后在该标识列上进行更新,或者根据表的主键进行更新,使该行唯一。