从表中仅删除500行

use*_*636 4 sql t-sql sql-server

有人可以请帮我查询从一个有20000行的表中只删除500行.还必须比特定日期更早.

谢谢你的帮助,

Soofy

Jer*_*emy 9

您可以像在select中一样使用Top关键字

Delete Top (500) 
From myTable
Where Date < '01/01/2009'
Run Code Online (Sandbox Code Playgroud)


Nat*_*itt 6

如果您使用的是SQL Server 2005,则可以执行以下操作:

DELETE TOP (500) FROM your_table
WHERE date_field < @my_particular_date
Run Code Online (Sandbox Code Playgroud)

或者你可以这样做:

SET ROWCOUNT 500

DELETE your_table
WHERE date_field < @my_particular_date
Run Code Online (Sandbox Code Playgroud)

在SQL Server 2000中,您可以这样做:

DELETE your_table
WHERE pk_field IN (
  SELECT TOP (500) * FROM your_table
  WHERE date_field < @my_particular_date
)
Run Code Online (Sandbox Code Playgroud)