zoukankan      html  css  js  c++  java
  • SQL未能排它地锁定数据库以执行该操作解决

    SQL未能排它地锁定数据库以执行该操作解决:

    --原因其他用户或进程在用着数据库

    /*  
    关闭用户打开的进程处理  
    */  
    use   master  

    if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[p_killspid]')   and   OBJECTPROPERTY(id,   N'IsProcedure')   =   1)  
    drop   procedure   [dbo].[p_killspid]    
       
    create   proc   p_killspid  
    @dbname   varchar(200) --要关闭进程的数据库名  
    as      
    declare   @sql     nvarchar(500)      
    declare   @spid   nvarchar(20)  

    declare   #tb   cursor   for  
    select   spid=cast(spid   as   varchar(20))   from   master..sysprocesses   where   dbid=db_id(@dbname)  
    open   #tb  
    fetch   next   from   #tb   into   @spid  
    while   @@fetch_status=0  
    begin      
    exec('kill   '+@spid)  
    fetch   next   from   #tb   into   @spid  
    end      
    close   #tb  
    deallocate   #tb  

    --关闭对数据库newhis   的连接  
    exec   p_killspid     'hjdb'  

    --更改排序规则  
    alter   database   hjdb   COLLATE   Chinese_PRC_BIN    

    --结束后删除存储过程  
    if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[p_killspid]')   and   OBJECTPROPERTY(id,   N'IsProcedure')   =   1)  
    drop   procedure   [dbo].[p_killspid]  

  • 相关阅读:
    nyoj67三角形面积
    hduoj1097A hard puzzle
    nyoj168房间安排
    nyoj73 比大小
    hduoj1021 Fibonacci Again
    hduoj1018 Big Number
    hduoj1108最小公倍数
    nyoj312 20岁生日
    hduoj1019 Least Common Multiple
    nyoj144小珂的苦恼
  • 原文地址:https://www.cnblogs.com/zjoch/p/1793738.html
Copyright © 2011-2022 走看看