문제

나는 프로그램을 정기적으로 업데이트 데이터베이스에 스키마.때때로,하나의 DDL 문에 실패할 수 있습니다면 그것은,내가 돌아가고 싶은 모든 변경합니다.나는 랩 업데이트 트랜잭션에서 다음과 같이

BEGIN TRAN;

CREATE TABLE A (PKey int NOT NULL IDENTITY, NewFieldKey int NULL, CONSTRAINT PK_A PRIMARY KEY (PKey));
CREATE INDEX A_2 ON A (NewFieldKey);
CREATE TABLE B (PKey int NOT NULL IDENTITY, CONSTRAINT PK_B PRIMARY KEY (PKey));
ALTER TABLE A ADD CONSTRAINT FK_B_A FOREIGN KEY (NewFieldKey) REFERENCES B (PKey);

COMMIT TRAN;

으로 우리는 실행하는 경우,하나의 문에 실패,나는 롤백 대신다.이 위대한 작품에서는 SQL Server,그러나 없에서 원하는 효과를 Oracle.Oracle 할 것 같다는 암시적 COMMIT 후 각 DDL 문을:

을 해제하는 방식이 암시적 commit?

도움이 되었습니까?

해결책

할 수 있습지이다.매우 쉽게 작동하여 주변을 디자인하는 스크립트를 테이블은 삭제 이벤트에 그들은 이미 존재하는 등등...

당신이 볼 수 있는 플래시백을 사용하여 데이터베이스,나는 당신이 작업을 수행 할 수 있습니다 스키마/체 수준이지만 확인 문서를 확인합니다.당신은에있을 필요가 10G 에 대한을 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top