none
MS SQL Server Truncate, Delete 문 RRS feed

답변

  • 안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “MS SQL Server Truncate, Delete 에 대한 답변을 드리겠습니다.

     

    Step 1 : Truncate

     

     

    -      Truncate 문은 테이블의 전체 행을 한 번에 삭제를 합니다.

     

    -      삭제로그가 Delete문보다 단순합니다.

     

    -      Transaction을 사용하지 않아서 데이터 복구를 할 수 가 없습니다.

     

    -      Where 문을 사용할 수 없습니다.

     

    -      IDENTITY Seed를 초기화를 합니다.

     

    -      Truncate Foreign Key 설정이 되어있는 Table에 적용을 할 수 없습니다. Delete/Update 트리거가 작동을 하지 않습니다.

    Msg 4712, Level 16, State 1, Line 1

    테이블 'Production.Product'() FOREIGN KEY 제약 조건에 의해 참조되므로 자를 없습니다.

     

    -      Index 설정을 해제 해야 합니다.

     

     

     

    Step 2 : Delete

     

    -      Delete문은 각 행을 제거를 합니다.

     

    -      각 행 마다 트랜잭션 로그를 순서를 고려해서 생성을 합니다.        많은 로그를 생성을 하지만 각 행을 선택적으로 복구를 할 수 있습니다.

     

    -      Where 문을 사용할 수 있습니다.

     

    -      많은 행을 가진 Table을 삭제할 경우 많은 시간을 사용합니다.

     

    -      Truncate 문처럼 Seed를 초기화할 수 있습니다.

     

    DELETE from Production.Product

    DBCC CHECKIDENT("Production.Product", RESEED, 0)

     

     

    참고 자료

     

    TRUNCATE TABLE(Transact-SQL)

    http://technet.microsoft.com/ko-kr/library/ms177570.aspx

     

    DELETE

    http://msdn.microsoft.com/en-us/library/aa258847(v=sql.80).aspx

     

    DBCC CHECKIDENT(Transact-SQL)

    http://technet.microsoft.com/ko-kr/library/ms176057.aspx

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    • 답변으로 표시됨 김도남 2012년 1월 2일 월요일 오전 1:14
    2011년 12월 27일 화요일 오전 2:56
    중재자