2011-08-31 10 views
0

내가 SQL 서버에 새로운 오전 이후, 내 질문은 우리가보기를 업데이트 할 수뷰에서 실제 데이터를 업데이트 할 수 있습니까?

  1. 입니까?

  2. 뷰에서 실제 테이블 데이터를 업데이트 할 수 있습니까?

+1

보기는 테이블을 선택하는 것일뿐입니다. 뷰는 데이터 자체가 "가지고 있지 않습니다.".... 데이터를 업데이트하려면 기본 테이블을 업데이트하십시오. 한 번 수행하면 뷰는 즉시이 업데이트 된 데이터를 표시합니다. –

답변

3

뷰를 업데이트하면 실제로 원본으로 사용하는 테이블이 업데이트됩니다. 뷰는 물리적 인 것이 아니라 그 아래에있는 데이터를 나타냅니다. 그것은 일반적으로 덜보다 간주 하지만 :

는 대부분의 상황에서는 서로 (http://msdn.microsoft.com/en-us/library/25614805(v=vs.80).aspx을 여기에 업데이트 뷰를 사용하는 방법에 대한 자세한 내용을보실 수 있습니다) 업데이트를 수용하기 위해 설치있는 한 VIEWS를 통해 UPDATE 문을 수행 할 수 있습니다 그렇게하기위한 훌륭한 연습. 그것은 상황을 매우 복잡하게 만들어서 그런 식으로 그렇게해야 할 충분한 이유가 있어야합니다.

+1

한 번에 한 뷰의 테이블을 업데이트 할 수 있고 어떤 필드 뷰가 어떤 테이블에 있는지 알 필요가 있으므로 내 애리조리가 그 것입니다. 직접 테이블을 갱신하십시오. 보기를 사용하여 사용자를 하나의 테이블에있는 데이터의 서브 세트로 제한하는 경우는 예외입니다. 그런 다음보기를 통해 업데이트하는 것이 좋습니다. – HLGEM

1

예 기본 테이블 데이터는보기 업데이트로 업데이트 할 수 있습니다.

여기서 주목할 점은 하나의 단일 테이블을 기반으로보기가 만들어지면 "업데이트보기"명령문이 작동한다는 것입니다.

그러나보기가 여러 테이블을 기반으로 작성된 경우 직접 Update 문은 작동하지 않습니다. 우리는 이러한 시나리오에서 "대신 트리거"를 사용해야합니다.

+7

사실이 아닙니다. 업데이트가 하나의 테이블에만 영향을 미치는 한 여러 테이블을 기반으로하는 경우 뷰를 업데이트 할 수 있습니다. 반대로 뷰는 단일 테이블을 기반으로 할 수는 있지만 업데이트 할 수는 없습니다 (예 : GROUP BY가 포함 된 경우). –

관련 문제