EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'
EXEC sp_MSForEachTable 'DELETE FROM ?'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
하지만, 그대로 사용하기엔 좀 부족해 보인다.
아래 사항을 추가해서 사용해야겠다.
1. 삭제하지 않을 테이블을 지정할 수 있을 것.
2. DELETE문 대신 TRUNCATE TABLE문을 사용할 수 있다면… TRUNCATE TABLE문을 쓰도록 분기할 것. (테이블이 VIEW에 schema binding되어 있다면… DELETE문을 쓸 수 없을 듯)
3. IDENTITY 속성의 컬럼을 포함한 경우, Reseed 할 것.
이때, 한번도 데이터가 INSERT되지 않았거나 TRUNCATE한 테이블과… 그렇지 않은 테이블의 Reseed 값을 달리 적용해야 함에 유의!!!
EXEC sp_MSForEachTable 'TRUNCATE TABLE ?'
한줄 테이블 삭제
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'TRUNCATE TABLE ?'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'TRUNCATE TABLE ?'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
외래키 제약조건 무시, 세줄 테이블 삭제
'DataBase' 카테고리의 다른 글
MS-SQL ldf 파일 사이즈 줄이는방법! (0) | 2012.04.26 |
---|---|
MS-SQL : restore database is terminating abnormally 뜰때 (0) | 2012.04.25 |
MS-SQL의 내장 프로시저의 특정 단어 검색하기 (0) | 2012.02.14 |
MySQL 주요 명령어 [간단] (0) | 2008.06.19 |
MySQL 자주 쓰이는 명령어 사용법과 예제 (0) | 2008.06.19 |