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

SQL Server 2008 で特定の数の上位行を効率的に削除するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-16 12:38:17
オリジナル
519 人が閲覧しました

How to Efficiently Delete a Specific Number of Top Rows in SQL Server 2008?

SQL Server 2008 での上位行の効率的な削除

先頭から特定の数の行を削除する必要がある状況を想像してください。 SQL Server のテーブル。 DELETE ステートメントを TOP 句と組み合わせて使用​​するのが直感的なアプローチですが、すべての行が誤って削除されるという問題が発生する可能性があります。この課題を解決するには、次のガイダンスを検討してください。

実行しようとしたコードにより、テーブルからすべての行が削除されることがわかりました。これは、コードが 2 つの異なるステートメント (DELETE ステートメントと TOP 句を含む SELECT ステートメント) で構成されているためです。 TOP 句は、ORDER BY 句を指定しないと、削除する行を効果的に識別できません。

確実に行を選択的に削除するには、TOP 句内で順序付け基準を確立する必要があります。さらに、共通テーブル式 (CTE) または同様のテーブル式の作成は、定義された数の上位行を削除するための非常に効率的な方法です。

次のコード スニペットは、より信頼性の高いアプローチの例です。

;WITH CTE AS
(
SELECT TOP 1000 *
FROM [mytab]
ORDER BY a1
)
DELETE FROM CTE
ログイン後にコピー

このコードでは、CTE は、特定の順序付け基準に基づいて指定された行数を選択することによって、元のテーブルから派生した別のテーブルを確立します (この例ではこの場合、a1列)。その後、DELETE ステートメントによってこの一時テーブルから行が削除され、最上位の行のみが確実に削除されます。

以上がSQL Server 2008 で特定の数の上位行を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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