私は非常に大きなテーブルを持っているので、以下を使用して古いエントリを削除しています。
WHILE (@@ROWCOUNT > 0)
BEGIN
DELETE TOP (5000) FROM myTable
WHERE date < 20130103
END
私はこれを異なる日付を使用して数回実行しました。正常に動作する場合もありますが(約20分かかります)、クエリがすぐに終了して何も削除されない場合もあります。その場合は、そのテーブルから単純なSELECTステートメントを実行し、上記のWHILEステートメントを再試行すると、機能します。なぜこれなのか誰もが知っていますか?このクエリを自動化して定期的に実行し、テーブルサイズを制御する必要がありますが、実行時に実際に適切に削除されることを確認したいと思います。ありがとうございました。