当前位置: 代码迷 >> Sql Server >> sql 并发的一个有关问题
  详细解决方案

sql 并发的一个有关问题

热度:52   发布时间:2016-04-27 14:19:02.0
sql 并发的一个问题
要手工生成一个 带字母的自增列

  select @newid = max(id) from tb 
  set @newid = xxxxx;
  insert into tb (id) value (@newid) where xxxx

怎么在这个过程中 [email protected] 一定是最大的 

我记得sql 中 有 锁 的概念

不知道怎么用法

------解决方案--------------------
SQL code
BEGIN TRAN  select @newid = max(id) from tb  WITH(XLOCK,HOLDLOCK)  set @newid = xxxxx;  insert into tb (id) value (@newid) where xxxxCOMMIT TRAN
------解决方案--------------------
带字母的自增列?
到是没有听说过@!

你可以创建一个数字自增列,然后创建一个计算列,将你想要的字母,与数字自增列连接运算作为你的计算式,这样,就能保证你的"字母自增列"为最大了.
------解决方案--------------------
另外建立一个最大ID管理表(maxID int),每次需要取最大ID的时候,先更新MaxID+1,再取出来
如:update 最大ID管理表 set maxID+1;select maxID;
这样就可以保证同时取ID时重复的可能
------解决方案--------------------
探讨
另外建立一个最大ID管理表(maxID int),每次需要取最大ID的时候,先更新MaxID+1,再取出来
如:update 最大ID管理表 set maxID+1;select maxID;
这样就可以保证同时取ID时重复的可能

------解决方案--------------------
SQL code
create table tb(id int identity(1,1),alp as char((id-1)%26+97)+(case when id>26 then char((id/26-1)%26+97) else '' end),col int) --alp列位数不够再加insert into tb(col) select number from master..spt_values where type='p' and number<100goselect * from tb/*id          alp  col----------- ---- -----------1           a    02           b    13           c    24           d    35           e    46           f    57           g    68           h    79           i    810          j    911          k    1012          l    1113          m    1214          n    1315          o    1416          p    1517          q    1618          r    1719          s    1820          t    1921          u    2022          v    2123          w    2224          x    2325          y    2426          z    2527          aa   2628          ba   2729          ca   2830          da   2931          ea   3032          fa   3133          ga   3234          ha   3335          ia   3436          ja   3537          ka   3638          la   3739          ma   3840          na   3941          oa   4042          pa   4143          qa   4244          ra   4345          sa   4446          ta   4547          ua   4648          va   4749          wa   4850          xa   4951          ya   5052          zb   5153          ab   5254          bb   5355          cb   5456          db   5557          eb   5658          fb   5759          gb   5860          hb   5961          ib   6062          jb   6163          kb   6264          lb   6365          mb   6466          nb   6567          ob   6668          pb   6769          qb   6870          rb   6971          sb   7072          tb   7173          ub   7274          vb   7375          wb   7476          xb   7577          yb   7678          zc   7779          ac   7880          bc   7981          cc   8082          dc   8183          ec   8284          fc   8385          gc   8486          hc   8587          ic   8688          jc   8789          kc   8890          lc   8991          mc   9092          nc   9193          oc   9294          pc   9395          qc   9496          rc   9597          sc   9698          tc   9799          uc   98100         vc   99(100 行受影响)*/godrop table tb
  相关解决方案