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

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

Mary-Kate Olsen
リリース: 2024-12-25 16:45:14
オリジナル
331 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート