hot2 โพสต์ 2020-7-11 11:40:22

การ insert ข้อมูลลง ms SQL server แบบ multi user โดยที่ PK ไม่ซ้ำกัน

ผมลอง insert ข้อมูลตามหัวข้อกระทู้ โดยใช้ loop forในการ insert ข้อมูลลง db จากสองเครื่องพร้อม ผลที่ได้ มันยังมีค่าที่ซ้ำกันครับ ขอคำแนะนำด้วยครับ

thongkorn โพสต์ 2020-7-11 15:25:28

ไม่รู้ว่าออกแบบตารางข้อมูลเหมือนผมหรือเปล่าครับ ผมแยก Primary Key ออกจาก ID (Identifier) ออกจากกัน และใช้ Flow Control เป็นตัวควบคุม สมมุติเวลาที่ User เลือกสร้างรหัสพนักงาน (ID) แบบอัตโนมัติ ก็จะเกิดการคำนวณหาจาก PK เช่น EMP0001 ... ผมจะสมมุติตัวอย่างไล่เรียงดังนี้ ...
1. User A เข้ามาก่อน แล้วทำการสร้างรายการพนักงานขึ้นมาใหม่แบบอัตโนมัติ สมมุติคือ EMP0001 ...
2. User B เข้ามาตามหลังก็จะทำการสร้างรหัสพนักงานใหม่อัตโนมัติเช่นกัน ก็จะได้ EMP0001 ...
3. User B ทำการบันทึกข้อมูลก่อน ก็จะไม่มีปัญหาใดๆ
4. User A จะทำการบันทึกข้อมูลไม่ได้ เพราะดักเช็ค ID ก่อน ทำให้มี ID ซ้ำกันกับของเดิม โปรแกรมก็จะแจ้งเตือน และทำการสร้างใหม่ให้อัตโนมัติ ก็จะกลายเป็น EMP0002 (ในภาพประกอบ ผมไม่ได้ใส่ไว้ แต่ให้ User เขาเลือกกดให้รันรหัสใหม่อีกครั้งเอง)
5. เมื่อรหัส ID ไม่ซ้ำกัน ก็จะไปคำนวณหา Primary Key ก่อนทำการบันทึกผล (SaveData) ...

เมื่อทำดังนี้ต่อให้มี User C เข้ามาเพิ่มรายใหม่เข้าไปก่อน User B จะประมวลเสร็จ มันก็จะย้อนวนรอบกลับไปที่ข้อ 4 ...

hot2 โพสต์ 2020-7-11 15:42:02

ขอบคุณครับ ผมจำลอง insert เข้า table เดียว 2 field ครับ
หน้า: [1]
ดูในรูปแบบกติ: การ insert ข้อมูลลง ms SQL server แบบ multi user โดยที่ PK ไม่ซ้ำกัน