사용자가 붙어있어도 DB를 DROP시키는 쿼리
페이지 정보
작성자 서방님 댓글 0건 조회 124회 작성일 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)
댓글목록
등록된 댓글이 없습니다.