2012-03-02 12 views
1

SQL Server 2005および2008データベースには、テーブルを切り捨てる定期的なジョブと、最後から行を削除する定期的なジョブを持つテーブルがあります。私の質問は、切り捨てまたは削除ジョブを開始する前に選択した選択がある場合、選択クエリはデータを切り捨て/削除するか、選択を読み込む前に一部のデータを削除できるかどうかです。選択肢は1つのテーブルを使用しています。SQL Serverで同時選択および切り捨てまたは削除

文は、これらの線に沿って次のようになります。SELECTが終了するのを

select * from someTable where id > x and id < y 

truncate table someTable 

delete from otherTable where id < z 

答えて

3

切り捨てをお待ちしております。 DELETEはできません。 DELETEは、SELECTがそれらを読み取る前に行を削除することができます。これが実際に起こるかどうかは、テーブル構成(インデックス、クラスタ化インデックス)やカーディナリティ(テーブルの行数、下位と上位の間の行数、上位よりも低い行数)など、より多くの要因によって決まります。

デプロイメントでこれを防ぐことができますrow versioning

関連する問題