1

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

数据库有关系。TableA 中我要插入值的列是一个 ForeignKey,它链接到 TableB 的 PrimaryKey,它是一个自动增量列。

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

我首先更新TableB(具有PrimaryKey自动增量列的那个),但是现在该列的值与TableA上的ForeignKey无关,所以我更新TableA并在ForeignKey列中临时插入第一条记录的值TableB的PK。现在我需要使用 TableA PK 列中的正确值更新 TableA foreignKey 列。每个表上还有第三列具有相同的值。

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

4

2 回答 2

2

这是一个令人困惑的问题,但我认为您正在谈论将表 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) 将在表 2 (dept) 的列 (empno 和 ename) 中插入 2 个值,并且连接在 (deptno) 上,这两个表中都存在。

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

于 2012-04-28T20:11:34.910 回答
0

谢谢大家的帮助。在“OledbException Operation must use an updateable query”挣扎了一段时间后,我在类似主题中找到了一个解决方案:MS Access 中的 SQL Update woes - Operation must use an updateable query

那就是成功的查询:

UPDATE DISTINCTROW PlaylistsSongs
    INNER JOIN PlaylistsNames ON PlaylistNames.PlaylistName = PlaylistsSongs.PlaylistName
SET PlaylistID = PlaylistNames.ID
于 2012-04-29T20:32:01.523 回答