2015-09-18 163 views
0

我試圖在該表上「自動插入」我的MONEY字段,因爲產品的數量乘以產品的價格。我有量的值,但價格將來自外鍵PRODUCT_ID但我收到錯誤消息:子查詢不允許

子查詢在此方面不容許。只允許使用標量表達式 。

這是表格。我怎樣才能做到「自動插入」?如果這種方式不可能,請告訴我另一種方式,我可以做到這一點。提前致謝。

CREATE TABLE ORDER_DETAILS 
(
NUM_ORDER INT PRIMARY KEY, 
PRODUCT_ID VARCHAR(4) NOT NULL, 
QUANTIITY INT NOT NULL, 
MONEY AS (QUANTITY * (SELECT PRICE FROM PRODUCTS WHERE PRODUCTS.PRODUCT_ID = PRODUCT_ID)), 
ORDER_DATE DATETIME NOT NULL DEFAULT GETDATE() 
) 

回答

1

您應該爲此創建一個用戶定義的函數。

CREATE TABLE ORDER_DETAILS 
(
NUM_ORDER INT PRIMARY KEY, 
PRODUCT_ID VARCHAR(4) NOT NULL, 
QUANTIITY INT NOT NULL, 
MONEY AS dbo.YourFunction(Quntity,ProductId), 
ORDER_DATE DATETIME NOT NULL DEFAULT GETDATE() 
) 
0

你可以不寫這行:

MONEY AS (QUANTITY * (SELECT PRICE FROM PRODUCTS WHERE PRODUCTS.PRODUCT_ID = PRODUCT_ID)) 

要計算這個屬性,你必須使用其中一種的自動值:

  1. 觸發
  2. 用戶定義的函數
相關問題