SQL Server의 보기에서 데이터를 수정하는 방법은 무엇입니까?

재인쇄됨: SQL Server의 보기에서 데이터를 수정하는 방법은 무엇입니까? - Xiao Xiaoxie - 블로그 가든(cnblogs.com)

SQL Server의 보기에서 데이터를 수정하는 방법은 무엇입니까?

테스트를 해봤는데 뷰의 데이터에 플래그 필드가 있을 때 이런 식(0 as FlagState)이면 수정할 수 없다.

--- 创建视图语句 --- 
V_EdsProd_1 뷰를 
    EdsProd에서 FlagState 
    선택하여 a.Uid ProdId, a.Code ProdCode, a.Name ProdName, b.Name ProdUnit,0을 생성하고 
    a.ProdUnit = b에서 EdsProdUnit b를 왼쪽으로 조인합니다. 
    a.DownloadFlag=0 및 a.State=9 
가 있는 Uid

쿼리 보기 데이터

--뷰 데이터 쿼리--- 
V_EdsProd_1에서 * 선택

보기 데이터(33921, 33922)를 수정하려는 경우 상태는 1입니다.

--뷰 데이터 수정을 위한 구문-- 
V_EdsProd_1 업데이트 set FlagState=1 where ProdId in(33921,33922);

오류는 다음과 같습니다.

 그런 다음 위에서 만든 뷰(0을 FlagState로)를 재정의하고 이 0을 데이터 테이블에 있는 필드로 변경합니다.

--보기 구문 
삭제-- 보기 V_EdsProd_1 삭제; 

--보기 문 만들기--- 
보기 V_EdsProd_1 만들기 
선택 
    a.Uid ProdId, a.Code ProdCode, a.Name ProdName, a.DownloadFlag as FlagState 
    from EdsProd a 
    left join EdsProdUnit b on a.ProdUnit = b.Uid 
    여기서 a.DownloadFlag=0 및 a.State=9 
이동

수정 문을 다시 실행하면 결과는 다음과 같습니다.

 

요약하다:

  데이터베이스 보기에서 데이터를 수정하려면 태그 필드를 수정하기 전에 태그 필드가 영구적인지(이 필드가 존재해야 함) 확인해야 합니다.

"0 또는 ' ' AS FlagState"만 사용하면 참조일 뿐이며 다음에 뷰를 호출할 때 여전히 초기화되어 수정할 수 없습니다.

평소에 더 많이 메모하고, 사용할 때만 볼 수 있고, 진행 상황을 기록하고, 결과를 공유할 수 있습니다.

 

추천

출처blog.csdn.net/chentiebo/article/details/131087167