2014-12-30 2 views
0

SQL Server에서 수행되는 작업 중 일부는 C# 측 트랜잭션에서 실행중인 사용자를 전환해야합니다. 트랜잭션과 컨텍스트 스위치가 SQL Server에서 어떻게 상호 작용하는지 궁금합니다.SQL Server에서 트랜잭션 내에서 EXECUTE AS/REVERT

(의사)

using(var transaction = database.GetTransaction()) 
{ 
    using(database.ExecuteAs("User A")) // EXECUTE AS User = "User A" 
    { 
     // Run queries as User A as part of the transaction 
    } // REVERT 
    using(database.ExecuteAs("User B")) // EXECUTE AS User = "User B" 
    { 
     // Run queries as User B as part of the transaction 
    } // REVERT 
    // Run queries as DBO as part of the transaction 
    transaction.Commit(); 
} 

AS 실행하고 트랜잭션이 사용자를 전환 한 후 영광 여부에 대한 메모를 볼 수 없습니다 내가이 문서를 살펴 보았다. 그들이 누구인지 아는 사람 있습니까?

답변

1

데이터베이스 트랜잭션 (SqlTransaction)은 사용자 범위가 아닌 세션 범위이므로 EXECUTE ASREVERT을 동일한 트랜잭션 (및 데이터베이스 연결) 내에 사용할 수 있습니다.

관련 문제