2009-08-26 6 views
0

내 테이블 중 하나에 최대 5000 개까지 레코드를 삽입했습니다.롤백 삽입문

하지만 이제는이 레코드를이 테이블에 삽입하면 안됩니다. 하나씩 레코드를 삭제할 수 없습니다. 또는 삽입 된 레코드를 테이블의 이전 레코드와 구별 할 수 없습니다.

테이블을 원래 형식으로 되돌리려면이 insert 문을 롤백 할 수 있습니까?

는 (나는이 로그를 사용하는 방법입니다 빨간색.하지만 난 그것을 수행하는 방법. erectly 모르는)

감사합니다.

+0

데이터베이스가 전체 복구 모드에, 그리고 당신이 트랜잭션 로그 백업이 수행 여기에 몇 가지 게시물이 주제에 대한입니까? –

답변

1

이 작업을 수행 할 때 트랜잭션 내에 있지 않았다고 가정하면 프로세스가 고통 스러울 것입니다. 관심있는 DBMS 어떤 맛 모르겠지만, 여기에 2005 SQL 서버에 대한 몇 가지 정보입니다하지 :

기본적으로 Rollback transaction using transaction log

,이 작업을 수행하는 가장 쉬운 방법은 당신의 삽입을 선행 백업에서 DB를 복원하는 것입니다은 .

1

나는 insert 문이 데이터베이스에 커밋되었다고 추측하고있다. 단순히 ROLLBACK을 수행 할 수있다.

감사 테이블이 있습니까? 감사 테이블이있는 경우 특정 날짜 시간 동안 삽입 된 행을 식별하고 삭제할 수 있습니다.

0

삽입 된 행에서 다른 모든 테이블과 구별 할 수있는 기능이 있습니까? 예를 들어, 삽입 된 날짜 또는 숫자 ID 열이 있습니까? 그렇다면 해당 기준에 따라 삭제를 수행하십시오.

그 외 버터 치킨은 맞습니다. 아마도 약간 고통 스러울 것입니다. 하지만 이전처럼 트랜잭션 로그를 사용하여 롤백 한 적이 없습니다.

+0

아니요 구분할 수 없습니다. 불가능합니다. – Waheed

+0

관리 스튜디오 GUI를 사용하는 것이 매우 쉽습니다. '특정 시점'복원 옵션을 선택하기 만하면됩니다. – wefwfwefwe

+0

현재 데이터베이스에서 특정 시점으로 복원하고 싶지 않으므로 해당 시점 이후로 다른 테이블에 추가 된 다른 모든 레코드를 제거합니다. 다른 사용자가 다른 데이터베이스로 복원 한 다음 원하는 테이블을 바꿔야합니다. 다른 사용자가이 테이블에 트레 코를 삽입 한 경우 데이터 무결성 문제가 발생하지 않고 특정 시점으로 복원 옵션을 사용할 수 없습니다. – HLGEM

2

다음은 몇 가지 추가 아이디어입니다.

다른 데이터베이스에 전체 백업을 복원 한 후 같은 ApexSQL Data Diff 또는 dbForge 또는

Red Gate 데이터베이스가 전체 복구 모드에있는 경우는 트랜잭션 로그를 읽어보세요 일부 타사 도구를 사용하여 테이블을 비교합니다.

SQL Server Transaction Log Explorer/Analyzer

Read the log file (*.LDF) in sql server 2008

How to view transaction logs in sql server 2008