mssql 트랜잭션 예제

BEGIN TRAN을 지정했기 때문에 트랜잭션이 롤백 또는 커밋에서 대기 중입니다. 트랜잭션이 대기하는 동안 테이블에 잠금이 만들어졌으며 HumanResources.Employee에 액세스하려는 다른 프로세스가 이제 차단되었습니다. BEGIN TRAN을 사용하여 롤백 또는 커밋을 즉시 실행해야 합니다. 예를 들어 레코드를 만들거나 레코드를 업데이트하거나 테이블에서 레코드를 삭제하는 경우 해당 테이블에서 트랜잭션을 수행합니다. 데이터 무결성을 보장하고 데이터베이스 오류를 처리하기 위해 이러한 트랜잭션을 제어하는 것이 중요합니다. 다음은 중첩된 트랜잭션의 또 다른 유사한 예입니다: ROLLBACK 명령은 데이터베이스에 아직 저장되지 않은 트랜잭션을 실행 취소하는 데 사용되는 트랜잭션 명령입니다. 이 명령은 마지막 COMMIT 또는 ROLLBACK 명령이 사용된 이후 트랜잭션을 취소하는 데만 사용할 수 있습니다. 다음 명령은 트랜잭션을 제어하는 데 사용됩니다. 테이블을 만드는 동안 이러한 문은 사용할 수 없으며 삽입, 업데이트 및 DELETE와 같은 DML 명령에서만 사용됩니다. SQL Server를 사용하면 트랜잭션을 중첩할 수 있습니다.

기본적으로 이 기능은 이전 트랜잭션이 완료되지 않은 경우에도 새 트랜잭션을 시작할 수 있음을 의미합니다. Transact-SQL을 사용하면 중첩된 BEGIN TRAN 명령을 실행하여 트랜잭션 작업을 중첩할 수 있습니다. @@TRANCOUNT 자동 변수를 쿼리하여 중첩 수준을 결정할 수 있습니다 – 0은 중첩없음, 1은 한 수준 깊이를 중첩하고 네 번째를 나타냅니다. 언제든지 SAVEPOINT로 롤백하여 적절한 데이터를 원래 상태로 되돌릴 수 있습니다. 예: 위의 예제 샘플 테이블1에서 나이 = 20이 있는 테이블에서 해당 레코드를 삭제한 다음 저장점을 유지하여 데이터베이스의 변경 내용을 롤백합니다. 쿼리: 이 예제에서는 중첩된 COMMIT TRAN에도 불구하고 외부 ROLLBACK이 여전히 In General의 효과를 역전시키는 것을 볼 수 있으며, 트랜잭션은 하나의 원자 단위로 성공하거나 실패해야 하는 여러 관련 작업으로 구성된 단일 작업 단위입니다. 거래의 개념을 더 친숙하게 만들고 왜 전부 또는 전혀 가야하는지, ATM에서 돈을 인출하는 우리의 일상 생활에서 가장 중요한 거래 예 중 하나를 상상해보십시오. SQL Server에서 트랜잭션 개념은 데이터베이스에서 데이터의 무결성을 유지하기 위해 매우 필요하며, 특히 서로 다른 테이블, 데이터베이스 또는 서버에서 여러 관련 작업을 순차적으로 실행하거나 두 개 이상의 레코드에 액세스할 때 세션이 동시에 진행됩니다. 이러한 모든 경우에 트랜잭션은 하나의 실패 또는 성공 단위로 작동해야 합니다.

Posted in Bez kategorii