我通過運行此查詢檢索一些記錄:C#SQL如何選擇並處理N個記錄,然後更新它們?
SELECT * FROM [MyTable] order by [Date] OFFSET N ROWS FETCH NEXT 500 ROWS ONLY
其中N是一個數字,從0和增量由500開始有此應用程序的多個實例,每個實例得到500條記錄。
現在的問題是,如何更新檢索到的記錄?記錄沒有主鍵。我想是這樣的,但語法是不正確的:
UPDATE [MyTable] SET [status] = 1 order by [Date] OFFSET N ROWS FETCH NEXT 500 ROWS
注:我不能使用WHERE狀態= 0,因爲我想一個實例只用它檢索記錄處理。
有什麼想法?
「記錄沒有主鍵」然後無法可靠地更新它們。沒有可用於識別記錄的值或組合值? –
在任何情況下,您都需要添加一個主鍵,即使它是一個自動遞增的數字,除了識別記錄以外沒有任何實際意義。 –
[MSDN:Sql Server創建主鍵](https://msdn.microsoft.com/en-us/library/ms189039.aspx) – MethodMan