나는이 트랜잭션 (내 첫 번째 거래)을 만들었고, 테이블에 Id = 111
이라는 행이 없지만 Subject
테이블에서 작동하고 새 행을 삽입했습니다. 모든 변경 사항을 롤백하지 않아야합니까?오류가 있어도 트랜잭션이 롤백되지 않습니까?
BEGIN TRANSACTION
INSERT INTO Subject (Name, SupervisorId) VALUES('Statistics', 4)
UPDATE Teacher SET Name ='Hady' WHERE Id=111
COMMIT TRANSACTION
나는 다음에 좀 더 로직을 추가 할 수 있지만 여전히 작동하지 :
Begin Try
BEGIN TRANSACTION
INSERT INTO Subject (Name, SupervisorId) VALUES('Statistics', 4)
UPDATE TeacherO SET Name ='Hady' WHERE Id=111
COMMIT TRANSACTION
End Try
Begin Catch
ROLLBACK TRANSACTION
End Catch
저는 생각하기에 'Teacher' 테이블을'TeacherO '테이블로 변경했습니다. 그러나 TeacherO 테이블은 아무것도 변경하지 않았으며, 그렇지 않습니다. 오류 트랜잭션 작업? –
존재하지 않는 테이블에 대해 'UPDATE'를 사용하려고하면 컴파일되지 않아야합니다 ... ** 기존 * 행에 * 잘못된 * 값을 설정하려고하면 오류가 발생했습니다 ** . ID = 2 인 교사가 있다고 가정 해 봅시다. ** UPDATE 교사 SET ID = 'test'WHERE Id = 2;와 함께 실제 ** 오류가 발생합니다. 어떤 경우에도 유효하지 않습니다 ... – Shnugo
알았습니다. , 먼저 오류 처리에 대해 읽어야합니다. –