[SQL] Reset Auto increment column บน Microsoft SQL Server

oum_nomercy
Arcadia Software Development
2 min readDec 13, 2018

ในการจัดการข้อมูลบน Microsoft SQL Server เราจะสังเกตว่าส่วนใหญ่ในบาง Table จะมีการทำ Auto Increment หรือ identity counter เอาไว้ซึ่ง เวลาเราทำการ insert ข้อมูลใหม่จะมีผลทำ column ดังกล่าวมีการเพิ่มข้อมูลโดยอัตโนมัติโดยข้อมูลที่เพิ่มขึ้นมาจากข้อมูลของ row สุดท้ายก่อนที่จะ insert ส่วนมากจะใช้เป็น ID หรือ Index ของข้อมูลบน Table

ตัวอย่างเช่น Table Employee ที่มี Employee Id เป็น Primary Key และ set เป็น Identity counter ไว้

หากทำการ insert ข้อมูลใหม่ column จะ Auto Increment ค่าให้ทันที

แต่ในกรณีที่ทำการ Delete row ออกไปและทำการ insert ใหม่ Database จะไม่ reset ข้อมูลกลับมาแต่จะเพิ่มขึ้นไปเรื่อยๆ แทน

ทีนี้เราอยากจะ reset ให้ Employee Id เป็น 6 ใหม่ สามารถทำได้โดยใช้ command

DBCC CHECKIDENT ('[TableName]', RESEED, 0);

โดยในตัวอย่างนี้จะเปลี่ยน 0 ด้านหลังเป็น 5 เพราะเราต้องการ Employee Id 6

จากนั้นทำการ insert ข้อมูลอีกครั้งจะเห็นว่าจะได้ Employee Id 6 กลับมาแล้ว

สามารถศึกษาข้อมูลเพิ่มเติมได้ที่

https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkident-transact-sql?view=sql-server-2017

--

--