2012-01-13 44 views
3

今天,我編輯了我公司網站上最重要的表格。我忘記了在更新語句後添加where子句,並且更改了所有用戶的登錄名。大約13,000人是惡魔。SQL Server:更新大號時出現警告。行

在SQL Server或SQL Server Management Studio中是否有一種方法可以在更新或刪除超過10行的行時發出警報?

+9

我不認爲你需要它。你只犯過一次這樣的錯誤,在你的雙腳掉下來之後,即使在現場服務器上運行選擇語句也會給你帶來汗水。 – devrooms 2012-01-13 01:34:57

+6

總是在事務中做類似的事情,所以你可以回滾以防萬一...... – Sparky 2012-01-13 02:21:51

+3

除了在一個事務中運行更新,我建議你虔誠地選擇包含你想要更新的數據的語句,並且將該語句轉換爲更新語句(當然,完成where語句)。 @devrooms評論也是我的經驗準確。希望你有一個備份... – jlnorsworthy 2012-01-13 02:47:46

回答

2

這是一個稍微不同的方法,但如果你想被提醒的事實,您使用的是生產服務器,SSMS Tools Pack(無附加在SSMS)有一個漂亮的功能叫做窗口連接着色

您將每個使用的SQL Server與一種顏色相關聯,並且每個查詢窗口頂部都有一個對應的彩色條。我所有的生產服務器均爲紅色; dev是綠色的;和測試/分期是橙色的。當我需要小心時,對我來說總是非常明顯的。

另外,默認情況下,每個新的查詢窗口都會打開並顯示BEGIN TRAN/ROLLBACK聲明,因此您應該記得先測試可能具有破壞性的查詢。

請注意我對該軟件沒有商業興趣,但我發現它非常有用。

+0

非常感謝你。 – Indy 2012-01-14 16:09:49

+0

沒問題。不要感到難過,我們都做過一次! – 2012-01-14 18:32:35

0

您可以添加一個更新觸發器,當插入的表格的行數超過X行數時會失敗,但如果您確實希望進行更改,則需要禁用/重置觸發器(不難,但煩人 - 這是你以後,我想)。

但是,如果你正在做手動操作,它們應該在最後一個select中進行開始tran/rollback事務,以驗證你正在做什麼,並且只有在你滿意後才提交它。 (我們大概都可以告訴你至少有一個案例,我們認爲我們對此感到滿意,但仍然犯了錯誤 - 哈哈)。

+0

哈哈哈,如何添加更新觸發器? – Indy 2012-01-14 16:12:03