我有一个会计事务处理表,我试图将它们复制到一个新表中。我已经制作出了副本,但我需要使用源表中的任何新事务更新副本。我遇到的问题是,源数据来自报告,该报告链接许多不同来源来创建这些交易,并且没有唯一的密钥。更新查询以获取没有唯一键的新记录?
如果我有一个唯一的键,我会创建一个更新查询,并执行从源表到被复制表的左连接,并且只要复制表中的键值为空,就更新这些字段。
由于我没有一个唯一的密钥,我不知道如何做到这一点。有任何想法吗?
-----编辑由于答案-----
SourceTable
Field1 Field2 Field3
CopiedTable
Field1 Field2 Field3
所以更新与新记录,我会做这个CopiedTable?
UPDATE CopiedTable SET
CopiedTable.Field1 = SourceTable.Field1,
CopiedTable.Field2 = SourceTable.Field2,
CopiedTable.Field3 = SourceTable.Field3
WHERE (SourceTable.Field1 <> CopiedTable.Field1 AND
SourceTable.Field2 <> CopiedTable.Field2 AND
SourceTable.Field3 <> CopiedTable.Field3)
那么你应该怎么知道什么是更新的价值? – Lamak 2012-03-09 16:12:39
所有字段的组合将使得它独一无二的是我的假设,我不确定它所需的最少字段数是否是唯一的 – chucklukowski 2012-03-09 16:17:50