如何在 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'
我有两个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'