Sql Server 2008 を使用してテーブルから上位 1000 行を削除するにはどうすればよいでしょうか? 質問する

Sql Server 2008 を使用してテーブルから上位 1000 行を削除するにはどうすればよいでしょうか? 質問する

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

おすすめ記事