您的位置:首页 > 数据库

mssql数据库,无法用语句实现“强制还原”功能

2008-12-03 17:31 225 查看
今天在做个小软件发现无法用语句实现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'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: