如何在SQL Server中更新前100条记录

17 浏览
0 Comments

如何在SQL Server中更新前100条记录

我想在 SQL Server 中更新前 100 条记录。我有一个表 T1,其中包含字段 F1F2T1 有 200 条记录。我想更新前 100 条记录中的 F1 字段。如何基于 SQL Server 中的 TOP 100 进行更新?

admin 更改状态以发布 2023年5月22日
0
0 Comments

没有ORDER BYTOP的整个概念就没有多少意义。你需要对"向上"和"向下"方向有一致的定义,才能使top的概念具有意义。

尽管如此,SQL Server允许它,但是不能保证确定性结果

接受答案中的UPDATE TOP语法不支持ORDER BY子句,但是可以通过使用CTE或派生表来定义所需的排序顺序来获得确定的语义,如下所示。

;WITH CTE AS 
( 
SELECT TOP 100 * 
FROM T1 
ORDER BY F2 
) 
UPDATE CTE SET F1='foo'

0
0 Comments

请注意,UPDATE语句需要括号:

update top (100) table1 set field1 = 1

0