我遇到了一些場景,我必須在我們的生產數據庫中手動刪除或修改記錄。這通常是應用程序無法按預期方式工作的地方。如何處理在生產環境中執行即席查詢?
如何刪除或更新這些記錄,而不會意外刪除或修改我正在使用的表中的所有記錄?
交易是實現此目的的合適方式嗎?
如果有幫助,我正在使用SQL Server Management Studio。
我遇到了一些場景,我必須在我們的生產數據庫中手動刪除或修改記錄。這通常是應用程序無法按預期方式工作的地方。如何處理在生產環境中執行即席查詢?
如何刪除或更新這些記錄,而不會意外刪除或修改我正在使用的表中的所有記錄?
交易是實現此目的的合適方式嗎?
如果有幫助,我正在使用SQL Server Management Studio。
是的。交易總是一個好主意。
查看OUTPUT Clause。開始一個事務,使用output子句執行更新或刪除語句,驗證結果,然後提交事務。
我這樣做:
BEGIN TRANSACTION;
DELETE table1
OUTPUT DELETED.*;
ROLLBACK TRANSACTION;
我運行,需要時間來看看結果。然後當我滿意並再次運行時,將最後一條語句更改爲COMMIT TRANSACTION
。
這就是說,我會盡我所能避免這樣做。嚇到我了。如果您發現自己可能不止一次地這樣做,可以在提供此註冊功能的應用程序中添加一些內容(或修復您正在清理的錯誤)。
是的,你可以在測試時使用TRAN
-- Start with Transaction
BEGIN TRAN OperationStart
-- Delete Items
DELETE FROM TableName
-- Where Condition
-- Update Items
UPDATE TableName
SET Column1 = 'some values'
-- Where Condition
-- Check/See the changes
SELECT * FROM TableName
-- Where Condition
-- Rollback all test operation/changes
-- Once you confirm then, COMMIT Transaction
ROLLBACK TRAN OperationStart