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

SQL Server テーブルから上位行を安全に削除するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-24 06:13:18
オリジナル
953 人が閲覧しました

How to Safely Delete Top Rows from a SQL Server Table?

SQL Server テーブルからの上位行の削除

SQL Server では、テーブルからの上位行の削除は DELETE ステートメントを通じて実行できます。 。ただし、テーブルのすべての行を誤って削除しないように、ステートメントが適切に構築されていることを確認することが重要です。

提供されたコードに示されているように、次のステートメントを使用して上位 1000 行を削除しようとします:

delete from [mytab] 
select top 1000 
a1,a2,a3
from [mytab]
ログイン後にコピー

通常、意図した上位 1000 行ではなく、すべてのテーブル行が削除されます。これは、ステートメントが DELETE と SELECT の 2 つの操作で構成されているためです。

先頭の行のみを正しく削除するには、TOP 句で順序付け基準を指定することが重要です。これがないと、SQL Server は行をランダムに削除し、テーブル全体に影響を与える可能性があります。

効率的な方法の 1 つは、Common Table Expression (CTE) または同様のテーブル式を使用することです。変更された例は次のとおりです。

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

この場合、CTE は、[mytab] テーブルから、指定された列 'a1' の順序で上位 1000 行を返します。次に、DELETE ステートメントは CTE テーブル式をターゲットにし、意図した行のみが削除されるようにします。このアプローチにより、不必要な処理が最小限に抑えられ、追加行の誤った削除が防止されます。

以上がSQL Server テーブルから上位行を安全に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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