写点什么

SQL Server 删除正在使用数据库

用户头像
田镇珲
关注
发布于: 2021 年 03 月 05 日
use master    go        declare @dbname sysname   set @dbname = 'databse' --这个是要删除的数据库库名         declare @s nvarchar(1000)   declare tb cursor local  -- 游标 for     select s = 'kill   ' + cast(spid as varchar)     from   master.dbo.sysprocesses     where  dbid = DB_ID(@dbname)         open   tb     fetch   next   from   tb   into   @s   while @@fetch_status = 0 begin     exec (@s)      fetch next from tb into @s end   close   tb   deallocate   tb      exec ('drop   database   [' + @dbname + ']')
复制代码

引用自https://www.cnblogs.com/dunitian/p/6047760.html


如果 直接使用 drop databse 则无法创建一个新的相同名称的数据库, 因为 在 windows 下这个数据库的文件夹没有将.mdf 和 .log 文件删掉


declare @dbname sysname

这里 主要是声明了一个 sysname 的变量, 变量名为 dbname。 那么什么是 sysname? sysname 类型本质上是一个 nvarchar(128)类型,但有一点特殊 不能为 null, sysname 一般用来描述数据库对象(database object)


数据库 cast 函数

数据库进程 id 的查找

open 关键字

fetch 关键字

close 关键字

deallocate 关键字

用户头像

田镇珲

关注

还未添加个人签名 2019.11.29 加入

还未添加个人简介

评论

发布
暂无评论
SQL Server 删除正在使用数据库