热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> 数据库>>正文内容

清除某个数据库的所有数据库连接的存储过程

发布时间:2010年02月08日点击数: 佚名

在我们利用代码还原或者删除数据库的时候,经常碰到因为还存在数据库连接而拒绝操作的情况,我为此特意写了一个存储过程用来清除某个数据库的所有数据库链接。
代码如下:

  1. CREATE PROC L_spClearDbConnections 
  2.     @DbName    VARCHAR(30) 
  3. AS 
  4. --清除某个数据库的所有数据库连接 
  5. --RickyLin 2007-11-1 
  6. DECLARE @SPID    INT 
  7. DECLARE @SqlForClear    NVARCHAR(100) 
  8.  
  9. DECLARE curID CURSOR FORWARD_ONLY READ_ONLY FOR ( 
  10.     SELECT SPID 
  11.     FROM Master.dbo.SysProcesses 
  12.     WHERE DB_Name(DBID) = @DbName) 
  13. OPEN curID 
  14. FETCH NEXT FROM curID INTO @SPID 
  15. WHILE @@Fetch_Status = 0 
  16. BEGIN 
  17.     SET @SqlForClear = N'KILL ' + Cast(@SPID AS NVARCHAR(10)) 
  18.     EXEC sp_ExecuteSql @SqlForClear 
  19.     IF @@Error = 0 
  20.         PRINT '已清除连接:' + Cast(@SPID AS VARCHAR(10)) 
  21.     FETCH NEXT FROM curID INTO @SPID 
  22. END 
  23. CLOSE curID 
  24. DEALLOCATE curID 
  25. PRINT '对数据库“' + @DbName + '”的连接清除操作完毕' 

更多模板/案例展示

亚太盛典国际婚纱摄影 本案例由亚太盛典国际婚纱公司所部署,精美的界面,合理的布局是网站的一大特色!
亚太盛典国际婚纱摄影 本案例由亚太盛典国际婚纱公司所部署,精美的界面,合理的布局是网站的一大特色!
关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作