none
关于锁的问题 RRS feed

  • 问题

  • create proc callproc(@id int,@index int)
    as
    begin
    update a表... set ... where aId=1
    update b表... set ... where bId=1
    ...
    callproc @id,@index+1
    end

    二个不同的连接同时执行下面代码
    declare @c int
    set @c=100
    while @c>0
    begin
    begin tran
    exec callproc 1,5
    set @c=@c-1
    commit tran
    end
    上面语句会产生死锁,怎样解决?(递归产生交替update a表、update b表、update a表...、即是会是产生下面的情况)


    下面这种问题又怎解决?
    连接一:
    begin tran
    update tUser set UserName=UserName
    waitfor delay '00:00:05'
    update tGroup set GroupName=GroupName
    commit tran

    连接二:
    begin tran
    update tGroup set GroupName=GroupName
    update tUser set UserName=UserName
    commit tran
    2009年10月30日 14:24

答案

全部回复