2017年3月16日 星期四

[研究] SQL Server 2016 識別值 (identity value) 設定研究

[研究] SQL Server 2016 識別值 (identity value) 設定研究

2017-03-16

由於一些測試,Auto-increment 欄位值一值增加,想要重設,或資料刪除後,從現存資料編號的下一筆開始編號,找到下面這篇。

DBCC CHECKIDENT (Transact-SQL)
https://msdn.microsoft.com/zh-tw/library/ms176057.aspx
https://msdn.microsoft.com/en-us/library/ms176057.aspx

實際測試發現,有時候重設為 N,結果新增一筆後,有時候是 N,有時候是 N+1,所以進行一些測試。


(下圖)
truncate  Table TestTable;
DBCC CHECKIDENT ("TestTable", RESEED, 10);
insert into TestTable (myname) values ('John');
select * from TestTable;
DBCC CHECKIDENT ("TestTable", RESEED, 20);
insert into TestTable (myname) values ('Tom');
select * from TestTable;


結果:
(1) 如果 是剛trancate 清空過資料表,目前0筆資料,DBCC CHECKIDENT ("TestTable", RESEED, 10),新增一筆後,編號是10。
(2) 如果是已經有資料,DBCC CHECKIDENT ("TestTable", RESEED, 10),新增一筆後,編號是11。



(完)

沒有留言:

張貼留言