여러 테이블의 조인을 포함하는 뷰가 있습니다. SELECT FROM 뷰에서 'WITH (READUNCOMMITTED)'를 사용하면이 뷰에 의해 조인 된 테이블에 전파되고 적용됩니까?SQL READUNCOMMITTED는 VIEWS에서 어떻게 작동합니까?
답변
격리는 적용 대상 인 테이블에만 적용됩니다.
다음을 고려하십시오. session1에서보기에서
create table x (a int, b varchar(10))
create table y (c int, d varchar(10))
insert into x (a, b) values (1, 'Q')
insert into x (a, b) values (2, 'W')
insert into x (a, b) values (3, 'E')
insert into y (c, d) values (1, 'A')
insert into y (c, d) values (2, 'S')
insert into y (c, d) values (3, 'D')
create view v_test
as
select x.a, x.b, y.d
from x with (readuncommitted)
inner join
y
on x.a = y.c
선택 : 하나 개의 세션에서 테이블 및보기를 설정 이제 다른 세션을 열고 불
a b c
---- ---- ----
1 Q A
2 W S
3 E D
v_test에서
선택 * 트랜잭션, 처음에는 x 업데이트 만 :
begin transaction
update x
set b = 'R'
where a = 1
세션 1로 돌아가서 보기를 실행하십시오. 이제 다음과 같이 나타납니다.
a b d
---- --- ---
1 R A
2 W S
3 E D
첫 번째 행에 b의 새 값이 표시됩니다.
돌아가서 세션 2, 여전히 거래 개방, 업데이트 부착 Y : 다음
update y
set d = 'F'
where c = 1
다시 세션 1에서 뷰를 쿼리하십시오 :
이select *
from v_test
(당신은 그것을 찾을 수 있습니다 오히려 오랜 시간이 걸릴 것 같습니다.)
쿼리가 여전히 실행 중이면 세션 2로 돌아가 트랜잭션을 커밋하십시오.
,451,515,는 (세션 2는 이제 다음과 같습니다
begin transaction
update x
set b = 'R'
where a = 1
update y
set d = 'F'
where c = 1
commit
)
을 session1 다시보고 결과가 지금이 나타납니다 : 처음에 D에 대한 새로운 값
a b d
--- --- ---
1 R F
2 W S
3 E D
을 열.
그래서 길게 이야기하면 WITH (READUNCOMMITTED)가 전파되지 않습니다.
내가 여기, 반대로,이 대답이라고 생각 : "SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED" and views
그러나 그들은 잘못되었을 수 있습니다, 당신이 올바른 있다면 다음에 사람들 알려야한다, 당신의 단계 아직 패트릭을하지 않은 그 스레드!
두 테이블 모두에서 readuncommitted을 사용하여 patrick에서 예제를 실행하면 트랜잭션이 진행 중일 때에도 작동합니다. 보기와 함께 readuncommitted with를 사용하지 않고 예제를 실행할 수도 있지만 readuncommitted를 뷰에서 select로 전달하면 뷰에 전달 된 경우 뷰의 select로 전달됩니다. 예. select * with v_test (readuncommitted)
- 1. SQL 쿼리는 어떻게 작동합니까?
- 2. sql count는 어떻게 작동합니까?
- 3. SQL 서버에서 백업은 어떻게 작동합니까?
- 4. SQL Server보기 인덱스가 어떻게 작동합니까?
- 5. PL/SQL 컨텍스트는 어떻게 작동합니까?
- 6. 이 SQL 쿼리는 어떻게 작동합니까?
- 7. SQL 매개 변수는 내부적으로 어떻게 작동합니까?
- 8. SQL Server 2008 : CTE에서 NOLOCK은 어떻게 작동합니까?
- 9. Amazon EC2에서 SQL Server 라이센스는 어떻게 작동합니까?
- 10. SqlDependency, 어떻게 작동합니까?
- 11. grails scaffolded views에서 정수형 그룹화
- 12. 어떻게 작동합니까?
- 13. 어떻게 작동합니까?
- 14. 어떻게 작동합니까?
- 15. Ajax는 PHP와 어떻게 작동합니까?
- 16. 관계형 데이터베이스가 어떻게 작동합니까?
- 17. drupal-views에서 중복 노드가 있지만 미리보기에 없습니다.
- 18. BeginsWith 작업은 ESQL에서 어떻게 작동합니까?
- 19. SQL Injection은 winforms에서 작동합니까?
- 20. Linq to SQL은 어떻게 작동합니까?
- 21. 준비 문은 어떻게 작동합니까?
- 22. hierarchyid 데이터 형식은 어떻게 작동합니까?
- 23. "With"키워드는 SQL에서 어떻게 작동합니까?
- 24. 레일즈 쿼리는 어떻게 작동합니까?
- 25. 메모리 조각 모음 소프트웨어. 어떻게 작동합니까? 작동합니까?
- 26. oracle에서 varchar2 정렬은 어떻게 작동합니까?
- 27. @Model은 Razor Views에서 VB 용으로 지원되지 않습니까?
- 28. LINQ to XML - 어떻게 작동합니까?
- 29. LINQ는 내부적으로 어떻게 작동합니까?
- 30. 파이썬없이 수은이 어떻게 작동합니까?