วิธีการรีเซ็ตค่าเริ่มต้นของ Increment Identity ใน SQL Server
เมื่อทำงานกับฐานข้อมูลใน SQL Server คุณอาจพบสถานการณ์ที่คุณต้องการรีเซ็ตค่าเริ่มต้นของ Increment Identity ซึ่งอาจเป็นประโยชน์โดยเฉพาะในช่วงการพัฒนาหรือการทดสอบเมื่อคุณต้องการให้แน่ใจว่าข้อมูลของคุณเริ่มต้นใหม่หรือหมุนเวียนผ่านช่วงค่าที่เฉพาะเจาะจงอีกครั้ง ในบล็อกโพสต์นี้เราจะอธิบายกระบวนการรีเซ็ตค่าเริ่มต้นของคอลัมน์ Identity ใน SQL Server โดยให้คำแนะนำที่ชัดเจนและกระชับ
ทำความเข้าใจเกี่ยวกับคอลัมน์ Identity
ก่อนที่เราจะดำดิ่งลงไปในขั้นตอนการรีเซ็ตค่า Increment Identity ให้เราอธิบายสั้น ๆ ว่าคอลัมน์ Identity คืออะไร:
- คอลัมน์ Identity: คอลัมน์ Identity คือคอลัมน์พิเศษในตาราง SQL Server ที่สร้างหมายเลขเรียงลำดับโดยอัตโนมัติเมื่อมีการเพิ่มแถวใหม่ โดยทั่วไปคอลัมน์นี้จะถูกกำหนดด้วยคุณสมบัติ
IDENTITY
เมื่อคุณสร้างตารางด้วยคอลัมน์ Identity คุณอาจตั้งค่ามันได้ดังนี้:
CREATE TABLE ExampleTable (
ID INT IDENTITY(1,1) PRIMARY KEY,
Name VARCHAR(50)
);
ในตัวอย่างนี้ แถวแรกจะมี ID
เป็น 1 แถวที่สองจะมี ID
เป็น 2 และต่อไปเรื่อย ๆ โดยเพิ่มขึ้นทีละ 1 อย่างไรก็ตาม บางครั้งคุณอาจต้องการรีเซ็ตลำดับนี้กลับไปที่หมายเลขเฉพาะ—ซึ่งมักจะเป็น 0
หรือ 1
—ด้วยเหตุผลหลากหลาย เช่น เมื่อต้องโหลดข้อมูลทดสอบใหม่
การรีเซ็ตค่า Identity
ในการรีเซ็ตค่าเริ่มต้นของคอลัมน์ Identity ใน SQL Server คุณสามารถใช้คำสั่ง DBCC CHECKIDENT
ได้ นี่คือรายละเอียดวิธีการทำ:
ขั้นตอนที่ 1: ระบุตารางของคุณ
ก่อนที่จะทำการเปลี่ยนแปลงใด ๆ ให้ระบุตารางที่คุณต้องการรีเซ็ตคอลัมน์ Identity สำหรับคู่มือนี้ สมมติว่าตารางของคุณชื่อ TableName
ขั้นตอนที่ 2: ใช้คำสั่ง DBCC CHECKIDENT
ไวยากรณ์ของคำสั่งเพื่อรีเซ็ตค่า Identity มีความชัดเจน:
DBCC CHECKIDENT('TableName', RESEED, 0);
- DBCC CHECKIDENT: คำสั่งนี้ตรวจสอบค่า Identity ปัจจุบันสำหรับตารางที่กำหนดและสามารถรีเซ็ตหากจำเป็น
- ‘TableName’: เปลี่ยนเป็นชื่อจริงของตารางคุณ
- RESEED: คำหลักนี้แสดงว่าคุณต้องการรีเซ็ตค่าเริ่มต้น
- 0: นี่คือค่าเริ่มต้นใหม่สำหรับคอลัมน์ Identity คุณสามารถเปลี่ยนเป็นค่าใดก็ได้ที่เหมาะกับความต้องการของคุณ แต่จำไว้ว่าบันทึกแถวแรกที่แทรกหลังจากคำสั่งนี้จะใช้ค่านี้และเพิ่มจากจุดนั้น
ขั้นตอนที่ 3: ยืนยันการรีเซ็ต
เพื่อยืนยันว่าค่า Identity ได้ถูกรีเซ็ตแล้ว เพียงแค่แทรกแถวใหม่ลงในตารางและตรวจสอบค่า ID:
INSERT INTO TableName (Name) VALUES ('Test Entry');
SELECT * FROM TableName;
คุณควรเห็นว่าบันทึกใหม่มี ID
เป็น 1
(หรือตามที่คุณตั้งไว้สำหรับ RESEED) หากนั่นคือจุดเริ่มต้นที่คุณกำหนด
สรุป
การรีเซ็ตค่าเริ่มต้นของ Increment Identity ใน SQL Server เป็นกระบวนการที่ตรงไปตรงมาโดยใช้คำสั่ง DBCC CHECKIDENT
ความสามารถนี้สร้างประโยชน์โดยเฉพาะในช่วงการทดสอบหรือการพัฒนา ทำให้คุณสามารถปรับปรุงกระบวนการทำงานของคุณให้ราบรื่นขึ้นโดยการทำให้มั่นใจว่าตัวระบุมีความสอดคล้องและคาดการณ์ได้
ตอนนี้คุณมีแบบฟอร์มที่มั่นคงสำหรับการรีเซ็ตคอลัมน์ Identity ที่พร้อมใช้! ขอให้สนุกกับการเขียนโค้ด!