各位高手,请帮帮我
现在要在sql server2000写一个删除数据库的Transact-SQL 语句。
当用drop database 'dbName' 时,这个dbName的数据库正在使用时。不能删除这个数据库。
有没有可以当dbName是正在使用时,也可以进行删除这个数据库的方法。请帮写出Transact-SQL 语句

解决方案 »

  1.   

    use master 
    drop database dbName
      

  2.   

    sqlservr 应用程序可以从命令提示符下启动、停止、暂停和继续 Microsoft® SQL Server™ 2000 的实例。语法
    sqlservr [-sinstance_name] [-c] [-dmaster_path] [-f]
        [-eerror_log_path] [-lmaster_log_path] [-m]
        [-n] [-Ttrace#] [-v] [-x] [-g number] [-O] [-y number]
      

  3.   

    当数据库正在使用时,进行分离数据库,是可以进行断开活动事务。这样以后就可以删除数据库。
    但是不知道怎样用Transact-SQL 语句去实现这个功能。
    请各位高手帮帮忙。
    谢谢
      

  4.   

    drop database  'dbName ' 时,这个dbName的数据库正在使用时,会一直等,等到没有使用为止就会删除如果不想等可以通过sp_who去查谁在使用这个数据库,写个循环kill kill kill
    然后删除,保证成功
      

  5.   

    设置脱机
    ALTER DATABASE 数据库名
    SET OFFLINE
      

  6.   

    --用代码先删除连接此数据库的进程declare @d varchar(8000)
    set @d=''
    select @d=@d+' kill '+cast(spid as varchar)+char(13)
    from master..sysprocesses where dbid=db_id('库名')
    exec(@d)
     
    --然后再删除数据库
      

  7.   

    正在使用的数据库不能直接删除,先把所有的用户进程Kill掉,如:--用代码先删除连接此数据库的进程declare @d varchar(8000)
    set @d=''
    select @d=@d+' kill '+cast(spid as varchar)+char(13)
    from master..sysprocesses where dbid=db_id('库名')
    exec(@d)
     
    --然后再删除数据库
      

  8.   

    一个不用思考的方法:停止SQL服务 -> 如有必要拔掉SQL服务器网线 -> 启动SQL服务 -> 连接SQL Server:drop database DBName
      

  9.   

    为什么要拔网线,因为有的业务程序也许会有重连机制,Kill了再连。呵呵,好像在教人做“坏事”。
      

  10.   

    偶比较喜欢用这种方法断连接:create table #t(spID int,ecid int,Status nvarchar(50),loginame nvarchar(10),hostname nvarchar(20),blk int,dbname nvarchar(50),com nvarchar(50))
    go
    insert #t exec sp_whodeclare @s nvarchar(4000)
    set @s=''
    select @s=@s+'kill '+rtrim(spID)+char(10) from #t  where dbname='数据库'
    --print @s 显示执行语句
    exec (@s)