안규 공부방

MS-SQL > 저장 프로시져 - System 프로시져 - DB 떼고,붙이기

등록일 : 2017-07-03 19:29 조회수 : 92,895

안녕하세요...
 
오늘은 아주 아주 급할때, 아주 아주 유용한 저장프로시져를 알아볼까 합니다.
여러분은 가끔 디비파일(*.MDF)이나 로그파일(*.LDF) 만 가지고 다른 디비에 붙이고 싶을때나,
디비 파일은 그대로 놔두고, 데이타 베이스만을 없애고 싶을때가 많았을거니다.
저도 그랬으니까여.
 
오늘 소개할 프로시져를 잘 활용하면 아주 힘들것 같은 작업을 손쉽고, 깔끔하게 처리 하실수
있으실겁니다.
 
그럼 SP_DETACH_DB 부터 하나 하나씩 알고 넘어 갑시다...
너무나 쉬운것들이니, 너무 겁먹지 마세영~~~~~~~~~~~~~~~~!
 
  7.8.1  SP_DETACH_DB(디비 떼어내기)

쿼리 분석기를 오픈 하시구,

sp_detach_db '디비명'

해 보세요.
sp_detach_db '디비명'  하시면 해당 데이터베이스가 떨어져나가게 됩니다.
이는 데이터베이스를 지우는 것과는 다릅니다.
지울경우 데이터베이스를 구성하는 mdf, ldf 파일도 같이 삭제되지만 위와

같이 하면 파일은 존재하게 됩니다
 
  7.8.2  SP_ATTACH_DB(디비 강제로 붙이기)

sp_attach_db 는 디비를 강제적으로 붙이는 역할을 합니다.

test 란 데이타베이스를 떼어냈다고 가정하면

(test.mdf , test.ldf) 파일이 존재하겠지요?

이걸 새로운 SQL 서버에 붙여 보도록 하지여.

sp_attach_db test, 'c:\data\test.mdf','c:\data\test.ldf'

첫번째는 붙이고자하는 DB이름인데 저는 test로 붙혔습니다.
        
이름은 바꿀수도 있습니다.
        
그런데 이 경우 원래 test를 참조하고 있는 뷰나 프로시져등은 그대로이기
때문에 원래 이름을 사용하시는게
좋습니다.
        
두번째와 세번째는 데이터 파일과 로그 파일의 경로를 적어주면 됩니다.
        
  7.8.3  SP_ATTACH_SINGLE_FILE_DB(로그 파일이 없을땐?)
  
   여러분이 만약 로그파일이 없구 디비 파일(mdf)만 가지고 있다면 이 프로시져를
   사용하시면 됩니다.
   이 프로시져는 DB이름과 데이터 파일의 경로만 적어주시면
SQL 서버는 자동으로 1M짜리 로그를 새로 생성하여 붙여줍니다.

         sp_attach_single_file_db test, 'c:\data\test.mdf'
        
        
제가 게으른 관계로 직접 화면을 캡쳐해서 보여주지 못해서 죄송합니다. 워낙
 
간단하게 사용될수 있기 때문에 직접 테스트 해보시면 금새 이해하실수 있으실 겁니다.
 
그럼, 유용하게 사용하시길....   
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.