これはおそらく経験のある人にとっては非常に簡単な質問ですが、特定の範囲に収まるSQLテーブル内の数百のレコードを削除する最も安全な方法を知りたいだけです。
たとえば、79〜296のIDを持つ行を削除する必要があります。
私の心配は、ID(> 79 AND <296)を持つすべてを削除すると言うと、文字通りテーブル全体を消去する可能性があることです。
sql Serverを使用する場合
_delete from Table where id between 79 and 296
_
After編集:あなたがしたいこと :
ID (>79 AND < 296)
だからこれを使用する:
_delete from Table where id > 79 and id < 296
_
条件ID(> 79および<296)を指定すると、答えは次のとおりです。
delete from tab
where id > 79 and id < 296
これは次と同じです:
delete from tab
where id between 80 and 295
id
が整数の場合。
すべての回答:
delete from tab
where id between 79 and 296
これは次と同じです:
delete from tab
where id => 79 and id <= 296
違いに注意してください。
DELETE FROM table_name
WHERE id BETWEEN 79 AND 296;
Idはすべての場合に連続することができないため、この方法を使用できます。
SELECT *
FROM `ht_news`
LIMIT 0 , 30
SQLサーバーで次のように記述した場合、そのテーブル内のすべての値が実際にそれらの値の間にある場合を除き、データベーステーブルを消去する危険はありません。
DELETE FROM [dbo].[TableName] WHERE [TableName].[IdField] BETWEEN 79 AND 296
私の心配は、ID(> 79 AND <296)ですべてを削除すると言うと、文字通りテーブル全体を消去する可能性があることです...
Where句があるので、それは起こりません。何が起こるかというと、delete * from Table1 where id between 70 and 1296
、SQLクエリプロセッサが最初に行うことは、テーブルをスキャンしてその範囲内のレコードを探し、削除を適用することです。
削除を選択に変更することもできます*
そしてあなたの選択をテストします
選択されたレコードは削除されたものと同じです
わからない場合は、ステートメントを開始/ロールバックでラップすることもできます-ステートメントをテストしてから、すべてがうまくいけばロールバックを削除します
例えば
SELECT * FROMテーブルWHERE id BETWEEN 79 AND 296
「本当に」削除したい場合は、使用する場所に一致するすべてのレコードが表示されます
79と296の間のテーブルWHERE IDから削除
トリガーを作成することもできます。トリガーは、削除をキャッチして履歴テーブルに入れます
誤って削除した場合は、いつでも元に戻すことができます
(履歴テーブルの記録は、6か月またはその他のビジネスルールに記載されているよりも古いものではありません)