1
我每天收到很多更改請求,要求在生產環境中刪除或更新記錄。在從生產數據庫中的表中刪除記錄之前需要採取什麼預防措施
我一般不自己的數據庫,所以沒有觸發,歷史記錄表等
例如
delete
from orders
where orderNo in ('x123', 'x124', 'x129')
我通常有作爲預防措施如下:
1)找到表有多大 - >
sp_spaceused 'dbo.orders'
取決於表格的大小e口備份整個表或只受刪除的範圍/更新
例如:
select * into tablebackups.dbo._MM_20140502_orders_1515
from Orders
where orderNo in ('x123', 'x124', 'x129')
這使我恢復數據如果需要的話。
2)我檢查約束條件,我特別尋找依賴於這個的表格,什麼類型的約束以及是否存在ON CASCADE DELETE/UPDATE
。
sp_helpconstraint 'dbo.orders'
根據這個我可以繼續打開事務,消防刪除,如果經過COMMIT
交易的結果。
問題:
- 沒有任何人有一個腳本來顯示ON CASCADE約束?
- 沒有人有腳本顯示依賴記錄嗎?