我通过运行此查询检索一些记录: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