2010-05-19 73 views
1

我有SQL Server 2005數據庫中具有完全相同的數據表中的2條記錄。 我想更新一條記錄。是否有無論如何這樣做?不幸的是,這張表沒有標識列,我不能使用直接更新查詢,因爲兩者都會被更新,因爲數據是相同的。無論如何,使用rowid或其他東西SQL Server 2005?SQL Server 2005:從2個相同的記錄更新一條記錄

+0

請不要刻意創造新標籤,當有完好的現有標籤時。 – skaffman 2010-05-19 14:06:18

+0

@skaffman:http://meta.stackexchange.com/questions/50088/official-repository-of-tag-synonyms(是的,我意識到你的評論並不針對我) – 2010-05-19 14:08:47

+1

@Jon:我期待着以相當大的熱情標記同義詞... – skaffman 2010-05-19 14:25:58

回答

2

我會添加一個標識列到表中,然後更新該標識列或更新基於任何表的主鍵,使行唯一。

+0

沒有標識列available.All列值是相同的 – Shyju 2010-05-19 14:04:25

+3

我同意。您需要添加一個以某種方式使其獨一無二的列。可能沒有標識列,但您必須添加標識列。否則,如果所有數據都是相同的,則不能告訴更新只更新一個。 如果您想創建一個僅返回TOP 1結果的特殊視圖或查詢,那麼您可以使其工作,但這絕對不是最直接的方法。我不確定它會成功。 – Thyamine 2010-05-19 14:06:54

5

我不太喜歡的TOP運營商,但:

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

真的,你想對你的表的主鍵,以避免只是這種情況,即使他們只是身份替代價值。

+1

+1優雅處理sh1te設計。 – gbn 2010-05-19 19:39:34

相關問題