Select Top(n)和Delete Top(n)是否相同?

时间:2012-10-17 09:51:03

标签: sql sql-server-2005

如果使用select语句:

select top (18) * from pippo;

我使用delete语句:

delete top (18) from pippo;

我想知道18个选中和删除的行是否相同 有什么帮助吗?

在接受答案后编辑:

我在这里找到了以下解决方案:Delete the 'first' record from a table in SQL Server, without a WHERE condition

WITH  q AS
        (
        SELECT TOP 18 *
        FROM    pippo
        ORDER BY FIELD1 ASC /* You may want to add ORDER BY here */
        )
DELETE
FROM    q

使用此解决方案,我按FIELD1对所有“pippo”表进行排序,然后删除前18行。

1 个答案:

答案 0 :(得分:6)

没有order by子句,没有保证的顺序,所以不,它们不能保证是相同的。