--要求两个表字段名都相同--根据表1字段,拼一个update的sql语句,然后执行Declare @SQL Varchar(1000)='Update 表1 Set 'Select @SQL=@SQL+'表1.'+name+'=表2.'+name+',' from sys.columns where object_id=object_id('表1')and name<>'id'Set @SQL=STUFF(@SQL,LEN(@SQL),1,'')+' Where 表1.ID=表2.ID'Exec(@SQL) --先删除表1 id在表2的这些数据,然后在插入表2的数据Begin Tran Delete From 表1 From 表1 A Inner Join 表2 on 表1.id=表2.id Insert Into 表1 Select * From 表2 Commit --目前mssql没发现这样的sqlUpdate 表1 Set 表1.*=(Select * from 表2 where id=表1.id) --Oracle有这样的写法Update 表1Set (表1.a1,表1.a2,表1.a3)=(Select b1,b2,b3 from 表2 where id=表1.id) Update 表1Set (表1.*)=(Select * from 表2 where id=表1.id)参考技术Aupdate a set a.字段1=b.字段1 ,a.字段2=b.字段2 from a,b where a.id=b.id