【问题标题】:Add Relationship添加关系
【发布时间】:2014-12-01 18:07:18
【问题描述】:

我正在尝试将外键添加到现有表中,这是我目前所拥有的:

ALTER TABLE     INVOICE_ITEM 
ADD CONSTRAINT  Invoice_ItemFK  FOREIGN KEY (ProdID);

我收到此错误:

消息 102,级别 15,状态 1,第 7 行 ')' 附近的语法不正确。

任何线索如何规避这个?

【问题讨论】:

  • 请编辑您的原始问题 - 包括 PROD 和 INVOICE_ITEM 表的完整定义。

标签: sql sql-server sql-server-2005


【解决方案1】:

您需要一个 REFERENCES 子句来列出您希望外键指向哪个表。例如,假设 ProdID 是 PRODUCTS 表的主键:

ALTER TABLE INVOICE_ITEM 
ADD CONSTRAINT Invoice_ItemFK 
FOREIGN KEY (ProdID) 
REFERENCES PRODUCTS (ProdID);

【讨论】:

    【解决方案2】:

    您需要指定 REFERENCES 子句。我已经猜到了这里的参考 - 但你明白了。实际问题是外键的名称。它应该以 FK_ 开头。

    ALTER TABLE INVOICE_ITEM 
    ADD CONSTRAINT FK_Invoice_Item 
    FOREIGN KEY (ProdID)
    REFERENCES Prod(ProdID);
    

    【讨论】:

    • 感谢您的帮助,我尝试了您的建议并收到另一个错误,这是代码以及错误:
    • ALTER TABLE INVOICE_ITEM 添加约束 Invoice_ItemFK FOREIGN KEY (ProdID) REFERENCES PROD(ProdID)
    • Msg 207, Level 16, State 1, Line 1 列名“项目”无效。
    • ProdID 是 prod 表的列和主键,试图将其作为外键添加到 invoice_item 表中。抱歉,如果我的问题不是很简洁,对 SQL Server 来说真的很陌生
    • 将约束添加到 INVOICE_ITEM 表中
    猜你喜欢
    • 1970-01-01
    • 2018-09-21
    • 2013-01-03
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 2011-07-19
    • 2019-11-24
    相关资源
    最近更新 更多