의 나는 다음과 같은 테이블이 있다고 가정 해 봅시다 :뷰의 열이 파생되었거나 상수인지 확인하는 방법은 무엇입니까?
create table t_Item (
ItemID int not null identity(1,1) constraint PK_Item primary key,
Description varchar(256) not null,
Price decimal(10,2) not null
)
다음과 같은보기 :
create view Item as
select ItemID
,Description
,Price
,1.09 Tax
,Price * 1.09 TaxedPrice
from t_Item
TaxedPrice
파생 열이며, Tax
은 일정한 열입니다.
따라서 삽입하거나 업데이트 할 수 없습니다. 첫 번째 쿼리는 성공하지만 다른 쿼리는 오류가 발생하여 실패합니다. 이 파생 필드 나 상수 필드를 포함하므로
업데이트 또는 뷰 또는 함수 '항목'의 삽입 실패 : 여기
insert into Item (Description, Price) values ('Test item', 14.00) insert into Item (Description, Price, TaxedPrice) values ('Test item', 14.00, 15.26) insert into Item (Description, Price, Tax) values ('Test item', 14.00, 1.09)
그리고
는 반환 된 오류 메시지입니다.
시스템보기에서 업데이트하지 않아야하는보기 열을 나열하는 방법이 있습니까?
잘 모름 나는'sys.columns'에서'is_computed'를 보았을 것입니다. 그러나보기에는 보이지 않으며 ['COLUMNPROPERTY']에서는 보이지 않습니다. (http://msdn.microsoft.com/en- us/library/ms174968.aspx) 중 하나를 선택합니다. –
'is_computed'도 내 첫 번째 추측 이었지만 [Microsoft의 정의] (http://msdn.microsoft.com/en-us/library/ms191250 (v = SQL.105) .aspx)는 다음과 같습니다. '계산 된 열 동일한 테이블의 다른 열을 사용할 수있는 표현식에서 계산됩니다. '보기의 열은보기 자체가 아닌 기본 테이블의 열을 사용하기 때문에 여기에는 해당되지 않습니다. – madprog