SQL Server にテーブルがあります。そのテーブルから上位 1000 行を削除したいと思います。しかし、これを試してみたところ、上位 1000 行を削除するだけでなく、テーブル内のすべての行が削除されてしまいました。
コードは次のとおりです:
delete from [mytab]
select top 1000
a1,a2,a3
from [mytab]
ベストアンサー1
試したコードは、実際には 2 つのステートメントです。ADELETE
の後に a が続きますSELECT
。
何によって順序付けられるかを定義しませんTOP
。
特定の順序付け基準で削除する場合は、熱膨張係数または同様のテーブル式を使用するのが最も効率的な方法です。
;WITH CTE AS
(
SELECT TOP 1000 *
FROM [mytab]
ORDER BY a1
)
DELETE FROM CTE