如何在 sql 服务器 2016 中更新 2 个链接表

how to update 2 linked tables in sql server 2016

我有两个table,两个table之间定义了一个外键关系。如果我尝试更新第二个 table,我会收到以下错误:

The UPDATE statement conflicted with the REFERENCE constraint "FK__T2__owner__48CFD27E". The conflict occurred in database "MY_DB", table "dbo.T2", column 'T2.colomn1'.

如何更新第二个 table 中引用第一个 table 的列?

  • 当您尝试更新 table T1 中的条目时,请确保我们在具有外键引用的列中更新的值,您更新的值引用的外键中是否存在table(除非该列可为空)。

  • 您尝试更新 T2 的值,column1 应该已经存在于 T1.column2 中。

可能没有必要同时更新两个 table,事实上您很可能不想这样做。根据您的评论,我假设您有 postal_code table?您似乎不太可能在地址上有外键,但我想这是可能的。您不想更新两者的原因是 post_office table 中的其他行可能使用相同的 postal_code.

只需将新的 postal 代码添加到 postal_code table。 (我猜到名字了。)

INSERT INTO postal_code
VALUES ('1234567891')

然后进行更新。

UPDATE post_office
SET address = 'Tehran p 190', postal_code = '1234567891'
WHERE social_id = '0020366760'

如果您认为其他 post 办公室没有使用旧的 postal_code,您可以随时自行清理。

DELETE FROM postal_code
WHERE id = 'someid'