当前位置: 代码迷 >> Sql Server >> 怎么锁定一个数据库表同时只允许一个人读取和修改
  详细解决方案

怎么锁定一个数据库表同时只允许一个人读取和修改

热度:12   发布时间:2016-04-24 10:34:24.0
如何锁定一个数据库表同时只允许一个人读取和修改
是这样子的
我有一个查询,需要根据ID来查询另一个字段的最大值,然后根据最大值生成一个值再插入到表中。现在出现了一个问题,插入的操作相对于之前的查询还是有一定的时间延迟,以至于如果同时进行相同的操作导致生成的一个值出现重复。

strSQL = "select MAX(ComputerName) from NewComputer Where ComputerName Like 'Z____"& ADUserAccount &"'"

strSql = "INSERT INTO NewComputer " &_
"(computername,Macaddress,OwnerAccount,JoinDate,JoinOperator,DepartmentAb,OuDnPath) " & _
"VALUES ('" & _
NewComputerName & "','" & strMacAddress & "','" & AdUserAccount &"','" & _
Now() & "','" & DomainJoinerName & "','" & strDepartAb & "','" & ADPCOUPath & "')"

我需要在我读取数据后,未插入数据之前,不允许其他人读取该表。并且需要只能锁定一段时间。

------解决方案--------------------
你给该表加X锁
------解决方案--------------------
那没有了任何并发可言了哦
------解决方案--------------------
COMMIT TRAN  insert into TT (ID) values ('11')
没有这样的T-SQL写法
------解决方案--------------------
对 插入表中的某个字段做约束,如果多个同时写入的值一样的话,则弹出提示,进行回滚;如果插入成功则再更新 最大ID值
  相关解决方案