MSSQL 中如何判断两个表的所有数据是否相同(两个表的字段已经相同)

MSSQL 中如何判断两个表的所有数据是否相同(两个表的字段已经相同),第1张

这种适合做拼接

给你一个我之前自己写过的一个拼接做参考,有点类似

***********用途************

*1、历史表数据还原

*2、字段拼接

*3、实际表中数据插入历史表

*/

declare @sql varchar(max) = '',@zd varchar(max)

--获取最大的ID值

declare @maxid int

select A_id,name into #ls from (select ROW_NUMBER() over(order by c.name) A_id,c.name from 

(select a.name 'A_name',b.* from sysobjects a,syscolumns  b

where a.xtype='u' and a.name = 'a01'

and a.id = b.id) c,

(select a.name 'A_name',b.* from sysobjects a,syscolumns  b

where a.xtype='u' and a.name = 'a01_insert'

and a.id = b.id) d

where c.name = d.name) j

select @maxid = max(j.A_id) from #ls

--循环拼接字段

declare @id int = 1

while(@id <= @maxid)

begin

 select @zd = j.name from #ls j

 where j.a_id = @id

 set @id = @id + 1

 --拼接字段

 set @sql = @sql + @zd + ','

  

end

--拼接sql语句

set @sql = 'insert into a01(' + left(@sql,len(@sql) - 1) + ') ' + 'select ' + left(@sql,len(@sql) - 1) + ' from a01_insert'

--输出sql语句

print @sql

--执行sql语句

--exec(@sql)

go

select a.col1,a.col2,a.col3 from table1 a,table2 b where a.id=b.id and a.col1=b.col1 and a.col2=b.col2 and a.col3=b.col3

如果返回的记录跟直接select * from table1 的记录完全一致的话,同时table1和table2的行数是一致的,则可以认为2个表的数据完全一致

SELECT A.NAME ,B.NAME FROM USER A

INNER JOIN PLADD B ON A.NAME=B.PEOPLE.

查到所有有名字相同的记录,下一步就是添加评论了。

update,语句或者add语句都行,不可能所有的语句评论都一样吧,所以是要一条条的添加评论。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10003761.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存