SQL怎么关闭数据库连接(删除数据库时需要关闭连接)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL怎么关闭数据库连接(删除数据库时需要关闭连接)相关的知识,希望对你有一定的参考价值。

建立数据库之后,进行了一些插入和查询操作,然后想使用DROP DATABASE 删除数据库,提示“ 消息 3702,级别 16,状态 3,第 1 行 无法删除数据库 "CCKDB",因为该数据库当前正在使用。”,如果使用SP_WHO查看spid然后再kill掉是可以的,但是现在我想用纯代码实现,应该用什么方法?另外用kill是不是暴力了点,有没有办法直接关闭呢?

这个没有关闭的语句,因为别的用户可能正在进行读写操作。
不过可以做一个替代逻辑:
检测drop database的返回值,如果是失败的那么就sleep一段时间,再来drop,如果连续drop了N次失败,那么exit报错;否则,等了一段时间之后用户应该已经完成操作了,那么你就可以正常删除了。
参考技术A 由于这时作业数据库为作者建立的数据库,所以不能删除。
但是作者再使用USE MASTER等语句把工作数据库转移,这样就不会再对先前的数据库操作,删除也就不会出现问题。
测试代码:
GO
CREATE DATABASE UFO
GO
USE UFO
GO
CREATE TABLE STUDENT(
SNO CHAR(10) NOT NULL,
SNAME CHAR(10),
PRIMARY KEY(SNO))
GO
USE MASTER
参考技术B 停止服务 ,WINDOWS系统桌面右下角有SQL服务的图标(一个服务器样子的东西)然后双击打开选择相关服务然后停止运行。更新完再启动。追问

出于程序自动化的考虑,我想全部用SQL语句实现,有办法吗?

追答

刚看到不好意思 可在SQL中调用DOS命令。来停止和启动服务。

参考技术C drop DataBase操作时,你的连接应当是master库
使用连接串连接找开某个库进行增删改操作时,是删不掉这个库的吧...
参考技术D 数据库正在使用当中,你把那些已经打开的属于jbnewsdb数据库的表要全部关闭,还有在新建查询下面的工具栏里的数据库名称也不要是jbnewsdb,把它改成master就行了

MFC对话框程序怎么连接数据库?数据库时SQL SEVER的

1.可以使用ADO连接数据库,具体的知识还比较的多,所以建议随便找本mfc的书本看看,可以直接使用mfc向导里的选项,非常方便的。
2.使用odbc连接数据库,较于复杂,而且速度明显无ado快(顺便吐槽一下odbc在windows程序开发中就是鸡肋,从来都很少有人用的。)
参考技术A 需要ADO的知识

以上是关于SQL怎么关闭数据库连接(删除数据库时需要关闭连接)的主要内容,如果未能解决你的问题,请参考以下文章

Java MySQL连接未关闭

sqlyog关闭链接能查询历史记录

用sql se3ver连上数据库后如何断开连接,我一删除连接就直接删掉整个数据库啊T T

SQLite-WinRT 包装器中的关闭连接

MFC对话框程序怎么连接数据库?数据库时SQL SEVER的

由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。