單元測試與資料表自動遞增Id的問題

今天同事問了一個關於資料庫建立資料表重設Id遞增值的問題,主要是在單元測試中,使用的資料庫並不是每次都重新建立,而是在執行單元測試之前,將資料表中的資料刪除,並且將Id欄位的初始值重設。
為了達到上面的需求,所以在一開始的時候會執行刪除資料和DBCC CHECKIDENT (‘TableName’, RESEED, 0)將資料表的遞增種子重設為0,這樣在新增資料的時候就會+1變成從1開始(一般正常的情況)。

不過問題是,如果資料庫和資料表是第一次剛建立的,使用這個指令會讓Id欄位一開始的編號是0,期望的初始編號是1,但是在之後刪除資料並且使用上面的指令後,再新增資料的初始編號就會從1開始,符合期望的數字。

閱讀全文