วิธีการรีเซ็ตค่าเริ่มต้นของ 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 ที่พร้อมใช้! ขอให้สนุกกับการเขียนโค้ด!