mysql断开数据库连接_快速断开当前数据库的所有连接的方法

快速断开当前数据库的所有连接的方法

以前我喜欢执行这个脚本,然后当要断开所有连接的时候就执行一下这个脚本,但是当我重装SQLSERVER的时候,又要在代码库里

找到这个脚本执行觉得很不方便,实际上分离数据库也能够断开所有连接

《mysql断开数据库连接_快速断开当前数据库的所有连接的方法》1 USE master 2 GO 3 SET ANSI_NULLS ON 4 SET QUOTED_IDENTIFIER ON 5 go 6  7 ALTER PROC [dbo].[Sp_KillAllProcessInDB] @DbName VARCHAR(100) 8 AS  9     IF DB_ID(@DbName) = NULL 10         BEGIN11             PRINT ‘DataBase dose not Exist’12         END13     ELSE 14         BEGIN15             DECLARE @killspId VARCHAR(30)16             DECLARE TmpCursor CURSOR17             FOR18                 SELECT  ‘Kill ‘ + CONVERT(VARCHAR, spid) AS spId19                 FROM    master..SysProcesses20                 WHERE   DB_NAME(dbid) = @DbName21                         AND spid <> @@spid      –终止不是当前进程的进程(不等于当前进程)22                         AND dbid <> 0           –数据库ID不是023             OPEN TmpCursor24             FETCH NEXT FROM TmpCursor25 26 INTO @killspId      –select into  @killspId27             WHILE @@FETCH_STATUS = 0 28                 BEGIN29                     EXEC (@killspId)30                     FETCH NEXT FROM TmpCursor31 INTO @killspId32 33                 END34 35             CLOSE TmpCursor36             DEALLOCATE TmpCursor37         END38        39        40 –exec Sp_KillAllProcessInDB ‘要访问的数据库’

《mysql断开数据库连接_快速断开当前数据库的所有连接的方法》

但是今晚我发现其实分离数据库更快,不过唯一不方便的地方是,分离数据库之后,你需要重新附加数据库

《mysql断开数据库连接_快速断开当前数据库的所有连接的方法》

点击“确定”就OK了,所有连接都断开

不过,当数据库中的数据文件或者事务日志文件比较多的时候,不像我这样,只有一个数据文件和一个事务日志文件

附加的时候就要写sql语句指定数据文件和日志文件的位置了

《mysql断开数据库连接_快速断开当前数据库的所有连接的方法》1 –语法 2 EXEC [sys].[sp_attach_db] @dbname = NULL, — sysname 3     @filename1 = N”, — nvarchar(260) 4     @filename2 = N”, — nvarchar(260) 5     @filename3 = N”, — nvarchar(260) 6     @filename4 = N”, — nvarchar(260) 7     @filename5 = N”, — nvarchar(260) 8     @filename6 = N”, — nvarchar(260) 9     @filename7 = N”, — nvarchar(260)10     @filename8 = N”, — nvarchar(260)11     @filename9 = N”, — nvarchar(260)12     @filename10 = N”, — nvarchar(260)13     @filename11 = N”, — nvarchar(260)14     @filename12 = N”, — nvarchar(260)15     @filename13 = N”, — nvarchar(260)16     @filename14 = N”, — nvarchar(260)17     @filename15 = N”, — nvarchar(260)18     @filename16 = N” — nvarchar(260)

《mysql断开数据库连接_快速断开当前数据库的所有连接的方法》《mysql断开数据库连接_快速断开当前数据库的所有连接的方法》1 –指定文件的位置 2  EXEC [sys].[sp_attach_db] @dbname = DLGPOS, — sysname 3      @filename1 = N’C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\DLGPOS.mdf’, — nvarchar(260) 4      @filename2 = N’C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\DLGPOS_1.ldf’ — nvarchar(260) 5  6  ———————————————- 7  –或者如果数据文件和日志文件超过16个,建议使用下面这个语句 8  CREATE DATABASE DLGPOS FOR ATTACH  9  on –数据文件   10  (   11    name = ”, –数据文件逻辑名   12    filename = ”,–数据文件存放路径   13    size = 1MB,–初始大小   14    maxsize = 10MB,–最大大小   15    filegrowth = 1MB–增长速度   16  )   17  log on –日志文件   18  (   19    name = ”, –日志文件逻辑名   20    filename = ”,–日志文件存放路径   21    size = 1MB,–初始大小   22    maxsize = 10MB,–最大大小   23    filegrowth = 1MB–增长速度   24  )

《mysql断开数据库连接_快速断开当前数据库的所有连接的方法》

—————————————–华丽的分割线—————————————–

看来用GUI还不能解决问题,最后还是使用博客园里潇湘隐者的方法

《mysql断开数据库连接_快速断开当前数据库的所有连接的方法》1 USE master2 GO3 ALTER DATABASE [GPOSDB] SET SINGLE_USER WITH ROLLBACK IMMEDIATE4 GO5 –查看是否还有用户连接6 SELECT * FROM sys.[sysprocesses] WHERE DB_NAME([dbid])=’gposdb’7 GO8 ALTER DATABASE [GPOSDB] SET MULTI_USER 9 GO

《mysql断开数据库连接_快速断开当前数据库的所有连接的方法》

虽然都是利用SQL语句,但是他的方法很简单,4句话就可以断开数据库所有连接了!!

再次感谢潇湘隐者大侠提供的方法!!

如果大家有什么需要补充的,或者文章有不正确的,欢迎大家拍砖!!

    原文作者:霜霜很乖哦
    原文地址: https://blog.csdn.net/weixin_32667439/article/details/113203986
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞