Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止sql中的并发插入_Sql_Sql Server_Concurrency_Insert Statement - Fatal编程技术网

防止sql中的并发插入

防止sql中的并发插入,sql,sql-server,concurrency,insert-statement,Sql,Sql Server,Concurrency,Insert Statement,有一个表tblStudents,其中包含有关学生课程的信息。根据课程类型和地点类型,为每个新生分配一个课程编号(varchar)。 例如: CourseNo Course Location StudentID Date NET_MUMBAI_001 Net Mumbai 100 2/6/2015 NET_MUMBAI_002 Net Mumbai 101 2/

有一个表tblStudents,其中包含有关学生课程的信息。根据课程类型和地点类型,为每个新生分配一个课程编号(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),并生成一个新的课程编号(Net_Mumbai_003)。当存在并发插入时,生成的编号将重复。如何防止这种情况发生?

感谢您的投入

同步使用以下两种方法来实现相同的效果。 1.应用唯一索引
2.已将isolazation级别用作可使用更新锁序列化的列

请为列CourseNoWhich RDBMS(MySql、Sql Server、Oracle等)使用唯一索引?请参见此处:CourseNon不能是主键。我的主键有一个不同的列