首页
技术库|站长工具|技术手册|字体库|知识点词汇表| 联系我们|
打开本页的html静态页面
 

主菜单

文章分类

.: 数据库开发 .: MSSqlServer .: 如何在线断开所有与数据库的连接对象

  • 全文内容
  • 发表评论
  • 文章点评
  • 文章附件
  • Email文章
  • 打印文章

如何在线断开所有与数据库的连接对象

点击次数:243 创建日期:11-1-2007 录入:cn-web.com 字体:[ ] 点评:


有时我们在对数据库操作中会遇到还存在数据库连接而拒绝操作的情况,以下存储过程可以实现在线断开所有与数据库的连接:
CREATE PROC L_spClearDbConnections
    
@DbName    VARCHAR(30)
AS
--清除某个数据库的所有数据库连接
--
RickyLin 2007-11-1
DECLARE @SPID    INT
DECLARE @SqlForClear    NVARCHAR(100)

DECLARE curID CURSOR FORWARD_ONLY READ_ONLY FOR (
    
SELECT SPID
    
FROM Master.dbo.SysProcesses
    
WHERE DB_Name(DBID) = @DbName)
OPEN curID
FETCH NEXT FROM curID INTO @SPID
WHILE @@Fetch_Status = 0
BEGIN
    
SET @SqlForClear = N'KILL ' + Cast(@SPID AS NVARCHAR(10))
    
EXEC sp_ExecuteSql @SqlForClear
    
IF @@Error = 0
        
PRINT '已清除连接:' + Cast(@SPID AS VARCHAR(10))
    
FETCH NEXT FROM curID INTO @SPID
END
CLOSE curID
DEALLOCATE curID
PRINT '对数据库“' + @DbName + '”的连接清除操作完毕'

请文明参与讨论,禁止漫骂攻击。
评论总数:0 [ 查看全部 ] 网友评论
此文章还没有任何评论!
(+5分)
(+4分)
(+3分)
(+2分)
(+1分)
此内容无附件
网站地图 - 知识词汇 - 全文检索 - 广告服务 - 帮助中心 - 联系我们
.:www.cn-web.com
网站技术开发联盟之WEB开发技术知识库
联系人:老韩(QQ:5679551)
晋ICP备07003487号