我想更新SQL Server的前100条记录。我有一个包含字段F1和F2的表T1。T1有200条记录。我想更新排名前100的F1赛场。如何根据SQL Server的TOP 100进行更新?


当前回答

这段代码可以完成它的工作

UPDATE TOP (100) table_name set column_name = value;

如果您想显示最近的100条记录,您可以根据需要使用这个选项。

With OrnekWith
as
(
Select Top(100) * from table_name Order By ID desc
)
Update table_name Set column_name = value;

其他回答

这段代码可以完成它的工作

UPDATE TOP (100) table_name set column_name = value;

如果您想显示最近的100条记录,您可以根据需要使用这个选项。

With OrnekWith
as
(
Select Top(100) * from table_name Order By ID desc
)
Update table_name Set column_name = value;

注意,括号对于UPDATE语句是必需的:

update top (100) table1 set field1 = 1

TOP限定符还可以用于限制手动错误更新的行数。

考虑下面的UPDATE语法。

UPDATE TOP (1) table1 SET column1 = 0 WHERE column_pk = '123'

如果没有TOP子句,如果您正在进行手动更新,并且您的鼠标文本选择仅从“update”选择到“WHERE”子句之前,则更新将应用于所有行。使用TOP子句,只有一行会得到不需要的更新。

TOP约束可以限制丢失或不正确的WHERE子句或ORDER BY子句的损害。当知道只需要更新一行或几行时,这将很有帮助。

update tb set  f1=1 where id in (select top 100 id from tb where f1=0)

你也可以使用别名和join从select中更新:

UPDATE  TOP (500) T
SET     T.SomeColumn = 'Value'
FROM    SomeTable T
        INNER JOIN OtherTable O ON O.OtherTableFK = T.SomeTablePK
WHERE   T.SomeOtherColumn = 1