我有两个完全相同的表,除了一列。两个表都有相同数量的记录和相同数量的列,并且所有数据都是相同的。如何更新每个记录的PK
Table A:
+--------------------------------------+--------+--------+---------+
| GUID | Animal | Person | Vehicle |
+--------------------------------------+--------+--------+---------+
| 1D001609-7071-4DBB-9E65-0000B3EEF751 | cat | matt | car |
| 90260783-E3C3-4A9B-BEA0-000388EA41E1 | dog | rich | truck |
| DD18FCFA-99BD-4FBC-AFC2-00058EF95D0A | zebra | alex | van |
+--------------------------------------+--------+--------+---------+
Table B:
+--------------------------------------+--------+--------+---------+
| GUID | Animal | Person | Vehicle |
+--------------------------------------+--------+--------+---------+
| F67A3079-8589-4304-AA3C-000688696BAA | cat | matt | car |
| C71710EC-492F-424E-805D-00068AFE4E82 | dog | rich | truck |
| 5F830142-F4CC-4580-974D-000710F1AB5F | zebra | alex | van |
+--------------------------------------+--------+--------+---------+
我需要一个表的GUID来进行更新,以等于表B的东西的GUID像这样将工作:
update a
set a.guid=b.guid
from tablea a
join tableb b
on a.animal=b.animal
and a.person=b.person
and a.vehicle=b.vehicle
但上述方案不会为我工作。我实际上有大约50列和大约100万条记录。
关于如何更有效地更新表A中的GUID,您还有其他建议吗?
为什么不回蓝的表,而你不希望列? –
太慢了。我想也许我可以把每一行的散列减去第一列,并比较记录的方式 –
@MikeCheel再生表将改变GUID –