2012-01-13 12 views
3

今日私は私の会社のウェブサイト上で最も重要なテーブルを作成しました。更新文の後にwhere句を追加するのを忘れて、すべてのユーザのログインが変更されました。 aprroxになる約13,000。SQL Server:大きな番号を更新するときの警告。行の

たとえば、10行以上の更新または削除が行われた場合、アラートを送信する方法はありますか。

+9

私はあなたがそれを必要とは思わない。あなたは一度だけ間違いを犯し、あなたの心が足を踏み外した後、ライブサーバ上の選択された声明を実行しても、あなたは汗を流すでしょう。 – devrooms

+6

トランザクション内では常にそういったことをするので、場合によってはロールバックすることができます。 – Sparky

+3

トランザクション内で更新プログラムを実行するだけでなく、更新するデータを含むselect文を宗教的に取ることをお勧めします。そのステートメントを更新ステートメントに変換します(もちろんwhere句を使用してください)。 @devroomsコメントも私の経験では正確です。あなたがバックアップを持っていればと思います... – jlnorsworthy

答えて

2

これは少し異なるアプローチですが、本番サーバーを使用しているという事実は、SSMS Tools Pack(無料アドインSSMSのため)に警告する場合はウィンドウ接続着色と呼ばれる気の利いた機能を持っています。

使用する各SQL Serverを色に関連付けると、各クエリウィンドウの上部に対応する色付きのバーが表示されます。私のプロダクションサーバーはすべて赤色です。 devは緑色です。テスト/ステージングは​​オレンジです。私が慎重にする必要があるときはいつも私には明らかです。

また、既定では、新しいクエリウィンドウがすべてBEGIN TRAN/ROLLBACKという文で開きます。そのため、最初に害を及ぼす可能性のあるクエリを最初にテストすることを忘れないでください。

注:私はソフトウェアに商業的関心はないが、私はそれが非常に有用であることを発見した。

+0

ありがとうございます。 – Indy

+0

問題ありません。気分が悪くない、私たちは一度それをやった! –

0

挿入されたテーブルがX個以上の行を持つときに失敗するon updateトリガーを追加することができます。ただし、実際に変更したい場合は、トリガーを無効/しかし、迷惑な - それはあなたが何をしているか、私は思います)。

しかし、手動で作業を行っている場合は、最後に選択してトランザクションを開始する必要があります。自分が何をしているかを確認してから、それに満足してからコミットしてください。 (おそらく、私たちがそれに満足していると思ったが、それでも間違っていると思った少なくとも1つの事例について、皆さんにお伝えすることができます。

+0

ハハハ..私は更新トリガを追加するには? – Indy

関連する問題