태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

모든테이블 삭제하기

Posted at 2009.03.27 11:35 // in MSSQL/T-SQL // by 건방진연이

모든 테이블 삭제하기 ㅋㅋㅋ
아~~!! 왜 난 쓸데없이 이런것만 쓰게 되는 것일까 -0-;;

그냥 이것저것 채우려는 마음이 급해서 특별한것도 아닌 글들을 올리는가 부다 ^^;;
하지만, 혹시나 모르는 분들이 계실까봐.. 용기내어 적어봅니다.

문서화 되지 않은 저장프로시저 란?
문서화 되지 않은 저장프로시저 란? 말 그대로 BOL에서 찾아보아도 없는 명령어 입니다.
언제 없어져도 이상할 것이 없는 명령어들이라는 말이죠 ^^;; (아놔!! 근데 왜 만들었데~~!!) 글쎄요 MS사에서 왜 어떠한 목적으로 만들었고 왜 없애려고 하는지는 적확히 모르겠습니다만, 그중에 몇가지 유용한(?) 쓰기에 편리한것이 있어 소개해 보려고 합니다.

sp_MsForEachDB
이 명령어는 무엇을 하는 명령어이냐 하면, 시스템상의 모든 데이터베이스의 목록을 얻어오는 명령어 입니다. 설명이 부족하여 무슨 소리인지 모르겠죠 ^^;; 그럼 아래와 같이 한면 입력하고 F5를 눌러주세요.

-- 시스템상의 데이터베이스 목록 출력하기
exec sp_MsForEachDB 'print ''?'''

이렇게 직접 해보시면, 시스템에 생성되여 있는 모든 데이터베이스의 목록이 출력이 됩니다. 많은 분들아 '아~! 이것을 이렇게 쓰면 편하겠구나' 라고 생각하셨을지도 모르겠습니다.

-- 모든 데이터베이스 체크하기
exec sp_MsForEachDB 'DBCC CHECKDB (?)'

-- 모든 데이터베이스 삭제하기
-- 실무에서 실행시키지마세요. 어디까지나 TEST

exec sp_MsForEachDB 'DROP DATABASE [?]'

sp_MsForEachTable

다음으로 이 명령어 눈치가 빠르신분들은 위에서 본 sp_MsForEachTable명령어와 똑같다고 생각을 하셨을 겁니다.
맞습니다.
위에 명령어는 모든 테이터베이스의 목록을 가져오는것이고, 이 명령어는 해당 데이터베이스의 모든 테이블을 가지고 오는 명령어 입니다.

-- 해당 데이터베이스의 모든 테이블 삭제하기
exec sp_MsForEachTable 'DROP TABLE ?'

방금 TESTDB에서 위 명령어로 깔끔하게 모든 테이블을 지웠습니다.
"참~! 좋죠~!"

마치며
별로 중요하지 않은것 같지만 나름대로 실무에서 적재적소에 쓰이고 합니다.
근데, 우스운것이 '문서화 되지 않은 명령어는 다음 버전이나 언제 삭제될지 모르니 책임을 지지 않고 이 점을 유념하여 사용바랍니다'하는데 2008의 인텔리젼스 기능을 사용하다보면 해당 문서화 되지 않은 명령어들이 쭈루룩~~!!

"참~! 어이없죠~!"


----------------------------------------------------------
DBA 이승연
GRAVITY co., Ltd 
Global Business Dept / Tech Support

http://www.gravity.co.kr
http://www.ddoung2.com
----------------------------------------------------------

'MSSQL > T-SQL' 카테고리의 다른 글

GROUP BY에 대하여  (0) 2009.04.28
SELECT절 집계 함수  (0) 2009.04.28
SQL에서의 관계대수  (0) 2009.04.28
데이터형식 우선 순위  (0) 2009.03.27
모든테이블 삭제하기  (1) 2009.03.27
공백을 구분하여 문자열 자르기  (0) 2009.03.26
  1. Favicon of http://ikgb76.dream4you.kr BlogIcon 버미

    2013.11.07 20:14 신고 [수정/삭제] [답글]

    좋은정보 얻어 갑니다.

    저보다 4년 앞서가신분의 소중한 정보 잘 이용하겠습니다. ^^;;;

댓글을 남겨주세요.