1. 删除数据库或者恢复数据库时,一定要先将数据库离线,在执行删除、恢复操作。

SQL代码如下:

 /*使数据库离线*/
ALTER DATABASE [数据库名] SET OFFLINE WITH ROLLBACK IMMEDIATE /*使数据库重新上线*/
ALTER DATABASE [数据库名] SET online

2. 删除数据库用户时,同样也要将用户帐号的进程给关闭,否则会提示:SQLServer无法删除登录名'***',因为该用户当前正处于登录状态

SQL代码如下:

 /*
要关闭用户帐号进程,必须获取帐号的spid值,通过 kill spid 关停帐号
exec sp_who 可以显示所有数据库帐号的spid
我们筛选想要的spid,就必须通过一个临时数据库,存储exec sp_who结果,这样就可以使用select检索想要的记录 1、定义临时表,存储exec sp_who 结果集
*/
Create Table #tmpTable (spid int,ecid int,status varchar(32),loginname varchar(32),hostname varchar(32),blk int,dbname varchar(32),cmd varchar(32),request_id int) /*2、向临时表写入记录*/
Insert Into #tmpTable EXEC sp_who /*3、定义变量用于循环记录*/
Declare @i Int /*4、 检索指定记录*/
Select @i=Min([spid]) From #tmpTable Where [dbname]='数据库名' And [loginname]='用户帐号' /*5、中止该帐号进程*/
EXEC('kill '+@i)
EXEC('kill '+@i) 时,我们建议采用循环来处理,因为可能
Select @i=Min([spid]) From #tmpTable  Where [dbname]='数据库名' And [loginname]='用户帐号' 的结果不存在,优化代码:
Declare @i Int
Select @i=Min([spid]) From #tmpTable Where [dbname]='数据库名' And [loginname]='用户帐号'
While @i Is Not Null
Begin
EXEC('kill' + @i)
Select @i=Min([spid]) From #tmpTable Where [dbname]='数据库名' And [loginname]='用户帐号' And 1=0
End

效率上来说,用case 更好一些。不过如果针对多个用户,用循环比较好:

Select @i=Min([spid]) From #tmpTable  Where [dbname]='数据库名' And [loginname]='用户帐号' And [spid]>@i

mssql删除数据库、删除帐号错误解决方法的更多相关文章

  1. android6.0SDK 删除HttpClient的相关类的解决方法

    本文转载自博客:http://blog.csdn.net/yangqingqo/article/details/48214865 android6.0SDK中删除HttpClient的相关类的解决方法 ...

  2. MSSQL附加数据库时提示以下错误: 无法打开物理文件“***.mdf”。操作系统错误 5:“5(拒绝访问。)”。 (Microsoft SQL Server,错误: 5120)

    MSSQL附加数据库时提示以下错误: 无法打开物理文件“***.mdf”.操作系统错误 5:“5(拒绝访问.)”. (Microsoft SQL Server,错误: 5120) ***** 解决方法 ...

  3. windows 10 删除库后自动恢复的解决方法

    目录 什么是windows 库? 手动删除不行吗? 如何正确的"删除"? title: windows 10 删除库后自动恢复的解决方法 date: 2019-06-09 15:4 ...

  4. (C#)asp_net调试错误解决方法收集(1)

    (C#)asp_net调试错误解决方法收集(1) 2007-11-2309:20 一.异常详细信息:System.InvalidOperationException:对于不返回任何键列信息的Selec ...

  5. SQL SERVER 9003错误解决方法 只适用于SQL2000

    SQLSERVER 9003错误解决方法 只适用于SQL2000 (只适用于SQL2000) "无法打开新数据库 'POS'.CREATE DATABASE 中止. (Microsoft S ...

  6. GoldenGate 1403错误解决方法

    OGG  oracle goldengate 1403错误解决方法 1. 错误描述WARNING OGG-01154 Oracle GoldenGate Delivery for Oracle, re ...

  7. mysql Access denied for user root@localhost错误解决方法总结(转)

    mysql Access denied for user root@localhost错误解决方法总结(转) mysql Access denied for user \'root\'@\'local ...

  8. MongoDB下载+安装+配置+错误解决方法

    下载 官网下载: https://www.mongodb.com/download-center/community Server=>Download 安装 下载完成后安装 建议下载根目录(下过 ...

  9. Eclipse 出现Some sites could not be found. See the error log for more detail.错误 解决方法

    Eclipse 出现Some sites could not be found.  See the error log for more detail.错误 解决方法 Some sites could ...

随机推荐

  1. Ubuntu no such file or directory

    在运行可执行程序时,报错如上,检查步骤: 1.程序是否和Ubuntu版本位数一致. Linux系统查看:uname -a 程序版本查看:file <filename> 2.查看文件是否有可 ...

  2. AngularJs学习笔记--Managing Service Dependencies

    原版地址:http://docs.angularjs.org/guide/dev_guide.services.managing_dependencies angular允许service将其他ser ...

  3. 转 Hibernate中cascade和inverse的作用

    Inverse和cascade是Hibernate映射中最难掌握的两个属性.两者都在对象的关联操作中发挥作用.1.明确inverse和cascade的作用inverse 决定是否把对对象中集合的改动反 ...

  4. css3中outline切换动画效果

    今天刚看了篇文章<纯CSS实现的outline切换transition动画效果> 里面的效果研究了一下,下图为实现时的效果 代码如下: <!DOCTYPE html> < ...

  5. 前端emmet插件的一些常用用法

    以下是在webstorm中简单使用emmet插件,注意一点就是当编写完emmet命令后一定要把光标移动到命令的结尾处,不然生成的代码会不一样 <!DOCTYPE html> <htm ...

  6. C 标准库 - string.h之strspn使用

    strspn Returns the length of the initial portion of str1 which consists only of characters that are ...

  7. C#使用System.xml.linq来生成XML文件

    直接看代码: /* * <?xml version="1.0" encoding="utf-8"?> * <Files Path=" ...

  8. 浅谈Java中的hashcode方法(转载)

    哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: 1 public native int hashCode(); 根据 ...

  9. [转]如何在 .Net Framework 4.0 项目上使用 OData?

    本文转自:http://www.cnblogs.com/fiozhao/p/3536469.html 最新的 Microsoft ASP.NET Web API 2.1 OData 5.1.0 已只能 ...

  10. 使用maven搭建Spring MVC

    在maven项目中搭建SpringMvc 1.pom文件 <span style="white-space:pre"> </span><propert ...