psa*_*sam 2 sql t-sql sql-server-2008
源表和目标表都有大约40列.要更新的行数约为20.目标表的行数约为30k.
下面有更好的(更短的查询)方法吗?
UPDATE destination_table t1
SET 
field1 = (select field1 from src_table t2 where t2.pk = t1.pk),
field2 = (select field2 from src_table t2 where t2.pk = t1.pk),
... 
field40 = (select field40 from src_table t2 where t2.pk = t1.pk),
WHERE EXISTS (select 1 from src_table t2 where t2.pk = t1.pk)
小智 5
你可以使用这样的东西:
UPDATE      dest
SET         dest.Field1 = src.Field1,
            dest.Field2 = src.Field2,
            dest.Field3 = src.Field3,
            dest.Field4 = src.Field4,
            dest.Field5 = src.Field5,
            dest.Field6 = src.Field6
FROM        destination_table dest
INNER JOIN  src_table src
ON          src.pk = dest.pk
您只需添加额外的字段即可进行更新.
| 归档时间: | 
 | 
| 查看次数: | 69 次 | 
| 最近记录: |