日期:2014-05-17  浏览次数:20529 次

求如何锁定插入操作,生成以年份为基础的自动增长列?
有两列

一列是 YearID ,一列是ID 有记录如下:
       2012     1
      2012     2
      2012     3
      2012     4
      2012     5
      2012     6 
sql server 自动的自动增长是用不成的,所以,只好先根据年份取出当年ID的最大值。然后在此基础上增加1
那么如果在取得并增加的这个过程中锁定数据库不让其他用户插入?




------解决方案--------------------
引用:
引用:藉助函數即可實現,e.g.



SQL code
?



1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556

use tempdb go if objec……


理論上是沒問題的,對於幷發環境我沒測試過。

Insert操作的時候,就會生成排他鎖x鎖,也就是不让其他用户继续插入数据。