简体   繁体   中英

While alter table adding foreign key getting error in SQL Server

I am trying to add a foreign key in SQL Server to an existing table, but I'm getting an error. Could any one please help me?

Note: objid is present in both table 1 & table 2

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

Error:

FK_40_PRICE_INST2PRICE_QTY. The conflict occurred in database "test", table "dbo.table2", column 'objid'.

The syntax should be something more like this:

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

You don't need to qualify the column name.

Apart from the error in the syntax, I think there are some values in the objid column that doesn't exist in the PRICE_INST2PRICE_QTY table. You have to check the values between the two columns. This is why you are creating the foreign key to prevent such things.

Do a quick check on you column 'objid' and don't write

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

It should be more like:

FOREIGN KEY (PRICE_INST2PRICE_QTY) REFERENCES table2(objid);

without table1, because you're working in table1.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM