SQL Server 2008 テーブルから上位 1000 行を削除する
SQL Server 2008 では、テーブルから上位 1000 レコードを効率的に削除できます。共通テーブル式 (CTE) と後続の削除ステートメントの組み合わせを使用したテーブル。その仕組みは次のとおりです:
元の問題のあるクエリ:
最初に試みたコードは、2 つの別々のステートメントで構成されているため、テーブル内のすべての行を削除します。セレクト。 select ステートメントでは順序付け基準が指定されていないため、すべての行が削除されます。
CTE を使用したコードの修正:
これに対処するために、という名前の CTE を利用します。 「CTE」は、「a1」列に基づいて昇順で上位 1000 行を選択します。後続の削除ステートメントは CTE をターゲットにし、特定のレコードのみが削除されるようにします。
;WITH CTE AS ( SELECT TOP 1000 * FROM [mytab] ORDER BY a1 ) DELETE FROM CTE
このメソッドを使用すると、残りのレコードに影響を与えることなく、テーブルから必要な数の行を効率的に削除できます。
以上がSQL Server 2008 テーブルから上位 1000 行を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。