我试图"自动插入"此表中的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()
)
答案 0 :(得分: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()
)
答案 1 :(得分:0)
你不能写这一行:
MONEY AS (QUANTITY * (SELECT PRICE FROM PRODUCTS WHERE PRODUCTS.PRODUCT_ID = PRODUCT_ID))
要自动计算此属性的值,您必须使用以下其中一项: