+ -
当前位置:首页 → 问答吧 → sql server 阻塞

sql server 阻塞

时间:2011-12-04

来源:互联网

我用PB10+SQL SERVER 2000 写了一个程序,要求可以多用户可以同时登录使用系统,但当前一个用户登录后,后面一个用户单击"登录"按钮后就不动了,要在前一个用户退出系统或是进入系统做一些其它操作(如查询数据,新增数据)后面一个用户才可以登录系统.后来在企业管理器里面查了一下,好像是阻塞的原因,请问该如何解决?或者说不是阻塞的原因.还有一个现象就是我写了另外一个多用户同时使用没有问题,使用的是本地数据库.前面有问题的是使用的别人的数据库.这样看来,是不是数据库设置的问题,请各位高人给我分析一下

作者: LUCKY_W   发布时间: 2011-12-04

SQL code
declare Roy_lock cursor for
select 
    db_name(dbid),0,blocked
from
    master..sysprocesses a
where
    Blocked>0 and
    not exists(select 1 from Master..Sysprocesses where blocked=a.spid)
union 
select 
    db_name(dbid),spid,blocked
from
    master..sysprocesses a
where
    Blocked>0
declare @DBName sysname,@spid bigint,@Blocked bigint
open Roy_lock
fetch next from Roy_lock into @DBName,@spid,@Blocked
while @@fetch_status=0
begin
    if @spid=0
        print N'鎖定數據庫:'+@DBName+'    語句:'
    else
        print N'鎖定數據庫:'+@DBName+'    進程SPID:'+rtrim(@spid)+' 語句:'
    dbcc inputbuffer(@Blocked)
fetch next from Roy_lock into @DBName,@spid,@Blocked
end
close Roy_lock
deallocate Roy_lock

作者: roy_88   发布时间: 2011-12-04

热门下载

更多