2015-02-06 4 views
1

테이블에 두 개의 열이 있다고 가정합니다. 한 열에 하나의 열을 넣으려고하면 값이 자동으로 다른 열에도 있어야합니다. 하지만 성능 때문에 트리거를 사용하고 싶지 않습니다.기본적으로 다른 열에 삽입하는 동안 자동으로 한 열에 삽입합니다.

이 제발 도와주세요 그는 데이터 형식 후 "표현"을 사용하는 새 열을 추가하는 동안

나는 몇 곳을 보았다.

+1

왜 두 개의 동일한 열을 갖고 싶습니까? 어떤 종류의 RDBMS 디자인입니까? –

+0

기본값에 대해 이야기하고 있습니까? –

+1

질문을 편집하여 명확하게 편집 할 수 있습니까? 동일한 값을 두 개의 열에 넣으려는 것이지만 이전 의견에서 생각한 것만 큼은 아닙니다. – Bacs

답변

5

계산 된 열이라고합니다. 열을 생성한다

이 예는 다른 두 개의 컬럼 (QtyAvailable 단가 및 )에 기초한 값을 포함 할 것이다 (InventoryValue불림).

에서 : https://msdn.microsoft.com/en-us/library/ms188300.aspx

CREATE TABLE dbo.Products 
(
    ProductID int IDENTITY (1,1) NOT NULL 
    , QtyAvailable smallint 
    , UnitPrice money 
    , InventoryValue AS QtyAvailable * UnitPrice 
); 

참고 :

의 값 InventoryValue이되지 삽입/업데이트시, SELECT 시간에 계산됩니다. INSERT-time에 계산되도록하려면 PERSISTED로 표시해야합니다. 이것은 getdate 함수를 계산에 사용하는 경우 특히 중요합니다.

CREATE TABLE dbo.Products 
(
    ProductID int IDENTITY (1,1) NOT NULL 
    , QtyAvailable smallint 
    , UnitPrice money 
    , InventoryValue AS QtyAvailable * UnitPrice PERSISTED 
); 

색인 및 외래 키에 영구 계산 열을 사용할 수 있습니다.

+0

'InventoryValue'가 select에 계산되고, insert/update에 계산되지 않는다고 덧붙이세요. – Bacs

1
CREATE TABLE dbo.tbl 
(
    ID int 

    , col2 AS ID) 
관련 문제