作爲新版本的一部分,偶爾我們會備份少量表格,然後在穩定期內刪除它們。 我想使它可配置,即爲要刪除的表列表設置命名約定,然後在穩定期結束後將其刪除,然後在穩定期結束後將其刪除。需要刪除表的列表,並且應該在SQL SERVER中進行配置
這是我的計劃。
- 重命名我想要刪除的所有表,後綴爲「_TBR」(將被刪除)。
- 添加一個帶有yyyymmdd格式的後綴,例如。如果表的名稱是EmployeeDetails,它將是EmployeeDetails_TBR_20150614。
因此,我將創建一個存儲過程,這將選擇所有具有TBR後綴的表,並將其放置到一個臨時表,與日期時間一起 如
select
name AS 'TableName',
convert (datetime, substring (name, len(name)-7,8)) as 'DeletedOn'
from
sys.tables
where
name like '%_tbr_%' and
type ='u'
現在
SELECT TableName FROM #TempTable WHERE DeletedOn <=GETDATE()
這將選擇所有超出指定日期的表。 現在,聲明一個遊標,然後循環並刪除它。
我會安排一份工作來每週運行這個存儲過程,它會照顧。
有沒有其他更聰明,最優化的方法呢?
的是,雖然它是在給錯誤的SELECT語句是當仁不讓編輯 – mohan111