防止在sql中进行并发插入

时间:2015-06-02 10:49:06

标签: sql sql-server concurrency insert-statement

有一个表tblStudents,其中包含有关student_courses的信息。根据课程类型和位置类型,为每个新学生分配课程的CourseNo(varchar)。 例如:

 CourseNo              Course       Location    StudentID   Date
NET_MUMBAI_001      Net     Mumbai       100        2/6/2015
NET_MUMBAI_002      Net     Mumbai       101        2/6/2015
NET_DELHI_001       Net     Delhi        100        2/6/2015
JAVA_DELHI_001      Java        Delhi        101        2/6/2015
JAVA_DELHI_002      Java        Delhi        102        2/6/2015
JAVA_DELHI_003      Java        Delhi        122        2/6/2015
JAVA_DELHI_004      Java        Delhi        112        2/6/2015

当新学生注册时,它会检查课程和位置组合的最后一个最高使用数(在本例中为孟买和网络为002),并生成一个新的课程编号。 (NET_MUMBAI_003)。当存在并发插入时,生成的数字是重复的。如何防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

感谢您的投入。

使用以下两件事同步实现相同目的。 1.应用独特的指数 2.使用isolazation级别作为可序列化的更新锁