我在 SQL Server 中有一个表。我想从中删除前 1000 行。但是,我尝试了此操作,但我不是只删除前 1000 行,而是删除了表中的所有行。
这是代码:
delete from [mytab]
select top 1000
a1,a2,a3
from [mytab]
您尝试的代码实际上是两个语句。 ADELETE
随后是一个SELECT
.
你没有定义TOP
按什么顺序。
对于特定的订购标准,从CTE https://technet.microsoft.com/en-us/library/ms190766(v=sql.105).aspx或者类似的表表达式是最有效的方式。
;WITH CTE AS
(
SELECT TOP 1000 *
FROM [mytab]
ORDER BY a1
)
DELETE FROM CTE
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)