2010-02-10 6 views

답변

17

msdn에서 : 작업이 개별 행 삭제를 기록하지 않기 때문에

TRUNCATE 테이블에 트리거를 활성화 할 수 없습니다.

+0

그래서 트랜잭션 로그 테이블이 있고 자르기가 실행될 때마다 또는 일종의 보조 데이터 복사본이 있어야합니다. Truncate가 기본 복사본에서 호출 될 때마다 잘립니다. 이것은 불가능합니다 .- 트리거에 개별 행을 제공 할 수없는 경우에도 TRUNCATE의 트리거가 유용 할 수있는 많은 이유가 있습니다. – Alexander

9

SQL 서버에서는이 작업을 수행 할 수 없습니다. 작업이되지 로그 개별 행 삭제를 않기 때문에

MSDN에서 TRUNCATE 표는 트리거를 활성화 할 수 없습니다. 에 대한 자세한 내용은 CREATE TRIGGER (Transact-SQL)을 참조하십시오.

4

사용자가 TRUNCATE TABLE을 특별하게/실용적으로 실행할 수있게 하시겠습니까? 그렇지 않다면, 트리거를 사용하는 것에 대해 걱정하지 말고, truncate가 끝난 후에 트리거가 수행 했었던 것을 처리하는 저장 프로 시저에서 TRUNCATE 명령을 감싸는 것이 어떻습니까? (하지만 반대 순서로해야 할 것입니다.)

+1

+1 for "willy nilly "나는"멍청한 " – swasheck