Oracle에서는 DDL 문장 수행 후 자동으로 commit 수행
Oracle 에서는 DDL 문장을 트랜잭션의 범주에 포함시킨다고 볼 수 있음
→ ROLLBACK 명령어 수행 시 명령어 이전에 있는 DDL 문장도 ROLLBACK
오라클은 자동 commit 이 되지 않는다
SQL Server는 자동 commit이 된다 (하지만 문제 조건에서 자동 커밋을 False로 설정)
오라클은 Create 문 같은 DDL이 실행되면, 이전에 실행한 DML은 모두 commit 이 된다.
DDL에 상관없이 SQL Server 는 자동 커밋이지만 , 문제 조건에서 Commit이 안되게 설정되었네요.
commit이 된다 = 디스크에 기록된다 로 이해하면 됩니다.
1번. update 문을 실행하면 VAL = 100 =>200 으로 바뀌고, Create 를 하는 순간, update 내용이 디스크에 저장됨
그러므로 rollback 해도 100으로 복구되지 않음
2번. SQL Server는 DDL 문이 있어도 DML (update )를 commit하지 않으므로, rollback을 하면 upate도 취소, create도 취소됨
(4번 답안과 의미 동일)
3번. 오라클은 rollback을 해도 DDL(Create table)은 rollback으로 복구가 안 됩니다. 그러므로 B 테이블은 생성되어 있음
```sql
INSERT INTO 테이블명 VALUES(’A’, ‘’);
```
ORACLE 실행 : ‘’ 값 NULL로 인식, 검색시 WHERE절에서 `칼럼 IS NULL`로 검색해야함
SQL server 실행 : ‘’ 값 공백문자로 인식, 검색시 WHERE절에서 `컬럼 = ‘’` 로 검색