zoukankan      html  css  js  c++  java
  • mssql数据库,无法用语句实现“强制还原”功能

    今天在做个小软件发现无法用语句实现MSSQL的“强制还原”功能,总是提示数据库正在使用中,(因为这个库打开过,它很长一段时间才会清除连接。虽然把1433端口封了),试了二个多小时无法解决。后来找到了这个老外写的存储过程解决了问题

    Create Proc Sp_KillAllProcessInDB 

    @DbName VarChar(100)

    as
    if db_id(@DbName= Null 
    begin
    Print 'DataBase dose not Exist'
    end
    else

    Begin
    Declare @spId Varchar(30)

    DECLARE TmpCursor CURSOR FOR
    Select 'Kill ' + convert(Varchar, spid) as spId
    from master..SysProcesses
    where db_Name(dbID) = @DbName
    and spId <> @@SpId
    and dbID <> 0
    OPEN TmpCursor

    FETCH NEXT FROM TmpCursor
    INTO @spId 

    WHILE @@FETCH_STATUS = 0

    BEGIN

    Exec (@spId)

    FETCH NEXT FROM TmpCursor
    INTO @spId 

    END


    CLOSE TmpCursor
    DEALLOCATE TmpCursor

    end 

    GO
    --To Execute
    Exec dbo.Sp_KillAllProcessInDB 'DBname'
  • 相关阅读:
    算法53----换钱的最小次数和方法数【动态规划】
    算法52-----矩阵最小路径【动态规划】
    Data
    Git
    Git
    Git
    Git
    DevOps
    Docker
    Tools
  • 原文地址:https://www.cnblogs.com/LCX/p/1346924.html
Copyright © 2011-2022 走看看