iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 26
0
自我挑戰組

IT人員面面觀系列 第 26

[Day26]建立測試用空的資料庫

在建立新的測試環境時,先建個空的資料庫再讓ap人員
來新增測試資料會是比較ok的做法,

小弟提供兩種方法供各位參考:

  1. 在資料庫按右鍵選擇工作->產生指令碼來產生建立資料庫的Script,
  2. 其中可以自由選擇Table、Trigger等各式物件是否要一併產生Script裡,
  3. 即然我們目的是要建立新的空資料庫那就全選了,
  4. 建好Script後再拿去測試環境執行即可
    https://ithelp.ithome.com.tw/upload/images/20181027/20107408A9Ck5owE4A.jpg
  5. 在測試環境還原資料庫後,立刻刪除所有表格的資料

第一個方法比較簡單,但我的經驗有些Table或其它物件會有遺漏...
所以選擇使用第二個方法,但原本要用TRUNCATE指令清空全部TABLE的資料,
發現會卡在Foreign Key的關連性而無法順利清空資料,
只好先disable全部的constraint,再用DELETE進行刪除動作

EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'DELETE FROM ?'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'

接著記得要把每張表的indentity計數歸零

EXEC sp_MSForEachTable 'dbcc checkident (?, RESEED, 1)'

既然剛才有大量刪除資料,交易紀錄檔也應該長大了不少,
記得再把交易紀錄檔Shrink一下。


上一篇
[Day25]管理SQL Server的例行作業事項
下一篇
[Day27]log檔和tempdb檔案大小一直增加時,該如何縮小?
系列文
IT人員面面觀30

尚未有邦友留言

立即登入留言