ホームページ >データベース >mysql チュートリアル >SQL Server 2008 テーブルから上位 1000 行を効率的に削除するにはどうすればよいですか?

SQL Server 2008 テーブルから上位 1000 行を効率的に削除するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-25 16:45:14341ブラウズ

How to Efficiently Delete the Top 1000 Rows from an SQL Server 2008 Table?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。