alter table在SQL Server中添加外键获取错误

时间:2017-10-16 10:59:02

标签: sql sql-server

我正在尝试将SQL Server中的外键添加到现有表中,但我收到错误。有人可以帮帮我吗?

注意:表1和表1中都有objid。表2

ALTER TABLE table1
    ADD CONSTRAINT FK_41_PRICE_INST2PRICE_QTY
    FOREIGN KEY (Table1 PRICE_INST2PRICE_QTY) REFERENCES table2(objid);

错误:

  

FK_40_PRICE_INST2PRICE_QTY。冲突发生在数据库" test",table" dbo.table2",column' objid'。

3 个答案:

答案 0 :(得分:0)

语法应该是这样的:

ALTER TABLE table1
    ADD CONSTRAINT FK_41_PRICE_INST2PRICE_QTY
    FOREIGN KEY (PRICE_INST2PRICE_QTY) REFERENCES table2(objid);

您无需限定列名称。

答案 1 :(得分:0)

除了语法错误之外,我认为objid列中的某些值并不存在于PRICE_INST2PRICE_QTY表中。您必须检查两列之间的值。这就是为什么要创建外键来防止这种情况。

答案 2 :(得分:0)

快速检查你的专栏'objid'并且不要写

 FOREIGN KEY (Table1 PRICE_INST2PRICE_QTY) REFERENCES table2(objid);

应该更像是:

FOREIGN KEY (PRICE_INST2PRICE_QTY) REFERENCES table2(objid);

没有table1,因为你在table1中工作。