如何使用Sql Server 2008从表中删除前1000行?

我在SQL Server中有一个表。我想删除前1000行。但是,我试过这个,但我而不是只删除前1000行删除表中的所有行。

这里是代码:

delete from [mytab] 
select top 1000 
a1,a2,a3
from [mytab]
你尝试的代码实际上是两个语句。一个DELETE后跟一个SELECT。

你不定义TOP为什么排序。

对于特定的排序标准,从CTE或类似的表中删除表达式是最有效的方式。

;WITH CTE AS
(
SELECT TOP 1000 *
FROM [mytab]
ORDER BY a1
)
DELETE FROM CTE
http://stackoverflow.com/questions/8955897/how-to-delete-the-top-1000-rows-from-a-table-using-sql-server-2008

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何使用Sql Server 2008从表中删除前1000行?