사용자가 붙어있어도 DB를 DROP시키는 쿼리 > db

본문 바로가기

db

사용자가 붙어있어도 DB를 DROP시키는 쿼리

페이지 정보

작성자 서방님 댓글 0건 조회 21회 작성일 07-04-01 21:54

본문

내용 : DB를 드랍 시키고 싶은데.. 사용자가 존재하는 중이라 삭제가 불가함

이때 사용자를 바로바로 킬하문서~~~ DB를 쓱~ 날려버리는 심플한 쿼리 입니다.

DB를 싱글로 만들고 DBO 온리로 만들고 해도 될텐데..  라고 생각 하지만..

이거를 좀더 빠른 처리를 위해 아예 하나의 프로세스 상에서 킬하고 삭제를 가능하게 만든 경우 입니다.

아마 이 쿼리 만드신분은...  DB를 삭제할때 자꾸 누가 들어와 무쟈게 짱난 경험이 있으신듯...

 

--간단히 @dbname 변수를 바까만 주면 됩니다.
use master
go
declare @dbname sysname
set @dbname = 'pubs'        -- substitute your database name here

set nocount on
declare Users cursor for
        select spid
        from master..sysprocesses
        where db_name(dbid) = @dbname

declare @spid int, @str varchar(255)

open users

fetch next from users into @spid

while @@fetch_status <> -1
begin
   if @@fetch_status = 0
   begin
      set @str = 'kill ' + convert(varchar, @spid)
      exec (@str)
   end
   fetch next from users into @spid
end

deallocate users


exec ('drop database ' + @dbname)

댓글목록

등록된 댓글이 없습니다.

Total 447건 1 페이지
게시물 검색

회원로그인

접속자집계

오늘
299
어제
446
최대
592
전체
38,817

그누보드5
Copyright © seobangnim.com All rights reserved.
자바스크립트를 활성화 하세요![ 브라우저에서 자바스크립트를 활성화하는 방법 ]