sqlserver数据库无法删除

今天协助测试同学解决数据库无法删除的问题,过程如下:

1、删除数据库是,数据库进入单用户模式,并无法删除,如下图:

2、查看数据库连接情况

查看数据库连接可以看到数据库正在被应用用户使用当中。

3、kill连接

直接在sql命令行执行:

kill spid;

连接即可被删除,如果程序有重连机制的话,最好先停掉应用程序,并且将应用用户锁住,否者还会不停的连接。

4、修复数据库为multi_user模式

alter database sb_game set multi_user;

5、修复以后,删除数据库提示数据库配置了replication

那么就需要先删除对应的复制相关配置,然后删除数据库就好了。

附:

这个案例告诉我们要停数据库或者删除数据库,我们应该先停掉应用程序,断开所有连接,检查是否有应用连接,是否存在类似镜像、复制相关功能,然后进行删数据库的操作。

时间: 2024-11-09 02:47:47

sqlserver数据库无法删除的相关文章

SqlServer关于“无法删除数据库 "XXXX",因为该数据库当前正在使用”问题的解决方案

引言 在项目中,通过使用SQL语句“DROP DATABASE [数据库名]”删除数据时,一直出现“无法删除数据库 "XXXX",因为该数据库当前正在使用”的错误信息,经测试在SqlSever数据库客户端中,直接执行该Sql语句可以正常执行,但是通过OLEDB执行该Sql语句,就出现上述错误,笔者查阅相关文档,找到了解决该问题的方法. 解决方法 将要删除的数据库设置库单用户模式和设置立即回滚,具体SQL语句如下: USE [master] ALTER DATABASE [数据库名] S

SQLServer数据库自增长标识列的更新修改操作

SQLServer数据库自增长标识列的更新修改操作方法在日常的sql server开发中,经常会用到Identity类型的标识列作为一个表结构的自增长编号.比如文章编号.记录序号等等.自增长的标识列的引用很大程度上方便了数据库程序的开发,但是有时这个固执的字段类型也会带来一些麻烦. 一.修改标识列字段的值:(在执行insert时,将ID手动的设置成想要的值)有时,为了实现某个功能,需要修改类型为Identity自增长类型的字段的值,但由于标识的类型所限,这种操作默认是不允许的.比如,目前数据库有

asp.net 连接sqlserver数据库

在asp.net中连接sqlserver数据库之前,首先得确保正常安装了sqlserver2008,同时有数据库. 在项目中添加一个类DB,用来专门负责执行对数据库的增删改查.在添加的过程中会弹出下面的一个提示 直接点是就可以了. 在这个类中,首先定义一个连接对象 private SqlConnection conn = null;然后定义下面三个函数 private void SetConnection()//初始化连接对象 { if (conn == null) { //获取配置文件中的数据

(转)对SQLSERVER数据库事务日志的疑问

本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/06/10/3130856.html 对SQLSERVER数据库事务日志的疑问 摸不透SQLSERVER了 实验环境:SQLSERVER2005 SP4,Windows7 本来没什么心情写文章,反正没人看,关于我文章中提到的问题,有些可以从文章结尾的MSDN补充那里找到答案,而有些还没有答案 根据CSDN博客的这篇文章介绍,大家可以先看一下,然后再继续往下看,因为下面会引用到CSDN博客里的

sqlserver数据库 提纲

sqlserver数据库一.体系结构文件--服务--界面 文件---.maf .ldf .ndf服务--MSSqlserver,别名(实例名)界面--宋庆龄serve如何windouws身份验证,如何从windows身份严恒变为sqlserver验证二. 创建建库.改库.删除 create database alter database drop database建表.改表.删表 create table alter table drop table 1 库:文件位置.初始大小.增长方式.次数据

sqlserver使用job删除过期备份文件

享下链接:http://blog.csdn.net/xieyufei/article/details/33770067(注意这里主要说明怎么设置删除过期备份文件) 先说下sqlserver使用job删除过期备份文件总体思路:①备份数据库文件的时候命名要有规则,如:"PTM_WorkOrder_"+当前时间(年月日)+"_"+当前小时[强调一下:无论你命名规范是什么一定要带上时间] ②删除过期备份文件实质就是使用sql语句删除指定文件(这也是为什么备份文件命名要带上时

mssql连接Sqlserver数据库基本封装

对mssql操作Sqlserver数据库的基本封装,原文件下载dbHelper 记录一下: /** * Created by chaozhou 2015/9/16. */ var mssql = require('mssql'); var user = "sa", password = "sa", server = "192.168.20.132", database = "ggcms"; /** * 默认config对象 *

SQLSERVER数据库主要状态

一个SQLSERVER数据库会处于很多种状态,例如 ONLINE .OFFLINE,RESTORING .RECOVERING .RECOVERY_PENDING  .SUSPECT.EMERGENCY . 只有在ONLINE的状态下,数据库才能被正常访问. 可以利用下面的语句来查看它的状态 select name,state_desc from sys.databases 1.ONLINE 只有在ONLINE的状态下,数据库才能被正常访问 2.OFFLINE 我们可以在Microsoft SQ

MYSQL,DB2,SQLSERVER数据库不同点浅探(一)

简单地比较一下MYSQL,DB2,SQLSERVER数据库设计不同点,为日后看MYSQL源代码先打打底,今天先比较数据库对象吧: 1.DB2上关于表有一个表空间的概念,简单地说, 表空间是数据库系统中数据库逻辑结构与操作系统物理结构之间建立映射的重要存储结构,一般来说一个表空间对应一个表.DB2在表空间上分配表空间对应表的一切物理属性,比如首次分配大小,扩展大小,页面每页初始空闲空间,空闲页面占总页面百分比等.因此,DB2上的系统DBA对表的操作更多是基于表空间上.比如因为表上的删改查不可避免地