更新 TableA.FK 值 TableB.PK 其中表A.列=表B.列

本文关键字:FK TableA TableB PK 更新 | 更新日期: 2023-09-27 18:32:38

我正在尝试合并来自不同数据库ServerDB和ClientDB的表并保存到ClientDB,其中客户端的表保存主表记录以及用户可能添加的任何记录。另一方面,服务器表也可以更新(插入新记录(。

数据库具有关系。我想插入到值的表A中的列是链接到表B的主键的外键,这是一个自动增量列。

我将两个数据库

的所有记录保存在合并数据集中,并且由于数据库设计限制,我需要在从数据集插入合并表之前清除客户端上的两个表。

我首先更新了表B(具有PrimaryKey自动增量列的表B(,但是现在此列的值与表A上的外键无关,因此我更新了表A并在外键列中临时插入了表B的PK的第一条记录的值。现在我需要使用表A PK列中的正确值更新表外键列。每个表上还有具有相同值的第三列。

sql 语句的语法应该是什么?如果我没有多大意义,请告诉我,我会发布更好的描述。

更新 TableA.FK 值 TableB.PK 其中表A.列=表B.列

这是一个令人困惑的问题,但我认为您正在谈论将表 1 中的值插入表 2,其中表 1 值等于表 2 值 此操作的 SQL 查询是

INSERT INTO emp (empno,ename)
SELECT t2.deptno, 
       t2.dname 
FROM   dept t2 
       LEFT JOIN emp t1 
         ON t2.deptno = t1.deptno 

在此查询中,表 1 (EMP( 将在列(EMPno 和 ename(中插入 2 个值表 2(部门(和连接已打开 (部门(,这两个表中都存在。

您可以进一步询问这是否没有帮助。

谢谢大家的帮助。在为"OledbException 操作必须使用可更新查询"挣扎了一段时间后,我在类似主题中找到了一个解决方案:MS Access 中的 SQL 更新问题 - 操作必须使用可更新的查询

这就是解决问题的查询:

UPDATE DISTINCTROW PlaylistsSongs
    INNER JOIN PlaylistsNames ON PlaylistNames.PlaylistName = PlaylistsSongs.PlaylistName
SET PlaylistID = PlaylistNames.ID