IT정보공유/DB

MSSQL 오류 해결 - 파생 필드나 상수 필드를 포함하므로 업데이트 또는 삽입하지 못했습니다.

알지오™ 2019. 8. 21.

MSSQL에서 생성해놓은 뷰에 인서트를 하려는 경우, 오류 메세지가 다음과 같을 경우 해결할 수 있는 방법입니다.

 

"뷰 또는 함수는 파생 필드나 상수 필드를 포함하므로 업데이트 또는 삽입하지 못했습니다."


이 경우는 보통 권한의 문제인데, 
뷰를 생성한 권한과 MSSQL View에 Insert를 하는 권한이 달라서 오류가 발생하는 경우 입니다.

실제 이 메세지가 발생했을 때, 권한 문제라고 하는데 도대체 무슨 권한 때문에 이런 문제가 생겼나 굉장히 고민을 많이 했었습니다.

많이 고민 했었어 이자릴 지켜야 하는지 - Y2K
많이 고민 했었어 이자릴 지켜야 하는지 - Y2K

(많이~ 고민 했었어~ 이자릴 지켜야 하는지~. Feat.Y2K 헤어진 후에)

View를 생성할때 Microsoft SQL Server Management Studio에 Windows 인증으로 
로그인 하여 뷰를 생성했었고, 
View에 Insert 할 경우에는 관리자 계정인 SA로 로그인 하여 insert를 하니까 
"뷰 또는 함수는 파생 필드나 상수 필드를 포함하므로 업데이트 또는 삽입하지 못했습니다." 라는 
MSSQL 오류 메세지가 발생했습니다.

 

MSSQL 서버 연결 인증 방법
MSSQL 서버 연결 인증 방법

 

SQL Server 로그인시 Windows 인증으로 하지 마시고, 
SA 계정으로 재로그인 후, 뷰를 생성해 주었더니 문제가 해결되었습니다.

Windows 인증으로 로그인 후 생성된 뷰에 sa계정의 권한을 부여하면 되는거 아닌가? 생각하시는 분이 계실수도 있는데
sa 계정자체가 권한으로 추가가 안되더라고요. 
(view 자체엔 이미 dbo 권한은 부여되있는 상태고요)

 

뷰 생성시에는 윈도우인증이 아닌 MSSQL 관리자계정으로 로그인한 후에 뷰를 만드시길 바랍니다.

댓글

💲 추천 글