从另一个表中拉取值

时间:2015-05-26 02:26:57

标签: sql sql-server tsql

我想创建两个相关的表。 ITEM表的主键为ItemNumber,另一个重要列为UnitPrice。第二个表再次有UnitPrice。我想从UnitPrice ORDER_LINE_ITEM列中的值填充ITEM表格中的UnitPrice列,但不确定如何执行此操作。我需要在第二个表中使用UnitPrice,因此我可以拥有ExtendedPrice的计算列,除非有办法让计算列包含来自另一个表的值。

CREATE TABLE ITEM 
    (
    ItemNumber int IDENTITY(1,1) Not NULL PRIMARY KEY,
    ItemName varchar(30) NOT NULL,
    OrderDate datetime NOT NULL,
    UnitPrice money NOT NULL,
    Description text NOT NULL,
    );  

CREATE TABLE ORDER_LINE_ITEM
    (
    OrderId int FOREIGN KEY REFERENCES ORDERS(OrderID),
    LineNumber int NOT NULL,
    ItemNumber int FOREIGN KEY REFERENCES ITEM(ItemNumber) NOT NULL,
    Quantity int Not NULL,
    UnitPrice money NOT NULL,
    ExtendedPrice money AS (Quantity * UnitPrice),
    CONSTRAINT pk_OrderLineItem PRIMARY KEY (OrderID,LineNumber)
    );  

1 个答案:

答案 0 :(得分:0)

让我们从手头的问题开始,根据您的要求,您只需要提供外键和参考ITEM(UnitPrice)

Insert into table ORDER_LINE_ITEM                  

CONSTRAINT FK_ORDER_LINE_ITEM_ITEM FOREIGN KEY(UNITPRICE) REFERENCE ITEM(UNITPRICE)

您需要处理的第二件事是整体编码风格,因为您有两种不同的方式来约束外键主键。这将有助于未来的编码工作,如果您正在与项目的其他编码人员合作。