Sql 更新表中的连续行

Sql 更新表中的连续行,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,如何更新表中连续的行数 例如,一个Employee表包含数百行 我必须更新行,只是从71到85 您可以清楚地将上述作为表的IDS或行号。使用秩< /P> 只是一个示例数据,因为您没有提供任何数据请发布您的表结构、一些示例数据和预期结果。@walther-这怎么错?对于给定的信息,你不能说,如果他有一个称为ID的主键,你可以清楚地把上面的ID视为IDS。查询将起作用。如果他没有,他将需要使用rank@NoDisplayName,如果有ID被删除了怎么办?没有足够的信息。这只更新id大于70或小于8

如何更新表中连续的行数

例如,一个Employee表包含数百行

我必须更新行,只是从71到85


您可以清楚地将上述作为表的IDS或行号。

使用秩< /P>


只是一个示例数据,因为您没有提供任何数据

请发布您的表结构、一些示例数据和预期结果。@walther-这怎么错?对于给定的信息,你不能说,如果他有一个称为ID的主键,你可以清楚地把上面的ID视为IDS。查询将起作用。如果他没有,他将需要使用rank@NoDisplayName,如果有ID被删除了怎么办?没有足够的信息。这只更新id大于70或小于86的行,但可能不会更新行70-86。那不一样。sqluser正确回答了这个问题,因为OP应该使用Rank。或者提供更多的信息…@walther-所以你不能说这是错的,因为没有足够的信息来说明这个答案是错的wrong@M.Scherzer你现在真的想争论这个吗?不,我不这么认为,因为我显然在第70-86行后面说了几个字符。我现在住的地方已经凌晨三点多了,英语不是我的主要语言,但这丝毫没有改变。代码不选择行71-85,而是选择大于70小于86的ID`。这是一个巨大的差异!而且这些结果甚至可能不是连续的。如果OP使用GUID怎么办?或者不使用自动递增列?或者删除了之间的行?
UPDATE MyTable 
SET foo = 'bar' 
WHERE id > 70 AND id < 86;
UPDATE MyTable 
SET foo = 'bar' 
WHERE id > 70 AND id < 86;