ADO.net에서 Oracle을 호출 할 때 루프에서 여러 삽입을 호출 할 때 각 삽입이 트리거를 발생시켜 PL-SQL에서 Commit 문을 포함하는 호출을 중지 할 수 없다고 들었습니다. 실제로 트랜잭션을 커밋하지 않아도됩니다.ADO.NET에서 사용하고 트리거를 사용할 때 Oracle 트랜잭션 범위?
즉, 루프가 시작되기 전에 ADO.Net 코드가 트랜잭션을 시작하도록하고 루프가 종료되면 루프의 모든 삽입이 성공한 경우에만 모든 삽입을 커밋합니다. 내 출처는 이러한 트리거에 COmmit 문이 포함 된 경우 오라클의 작동 방식을 알려주고 있으며 이는 불가능합니다.
이것은 매우 일반적인 요구 사항 인 것으로 보이며 SQL Server에서 가능하다는 것을 알고 있습니다. 나에게 맞는 것 같지 않아.
이 정보가 맞습니까? 그는 Oracle 데이터베이스에 대해 얘기하면
기다림, SQL Server에서 정확히 무엇이 가능합니까? 자치 Txns? 방아쇠를 당기는거야? –
SQL Server에서 모든 Begin Transaction은 @@ TranCount라는 내장 트랜잭션 범위 변수를 사용하여 액세스 할 수있는 카운터를 증가시킵니다. 그런 다음 모든 Commit Transactiopn 문에서 SQL 문을 감소시키고 DB는 @TranCount = 0 일 때만 커밋합니다. –
SQL Server 문서에서 : BEGIN TRANSACTION 문은 @@ TRANCOUNT를 1 씩 증가시킵니다. ROLLBACK TRANSACTION은 @@ TRANCOUNT를 0으로 줄입니다 @@ TRANCOUNT에 영향을주지 않는 ROLLBACK TRANSACTION savepoint_name의 경우. COMMIT TRANSACTION 또는 COMMIT WORK는 @@ TRANCOUNT를 1 씩 감소시킵니다. –