日期:2014-05-19  浏览次数:20446 次

关于获得不同记录列值不同的问题
最近遇到个问题

有一个列比较多的表,想判断两条记录中,究竟哪些值不一样。

想直接获得列名,以及不同的值

看看都有什么办法?



------解决方案--------------------
--改下钻石的语句

declare @sql varchar(8000)
set @sql= ' '

select @sql=@sql+ '+(case when a.[ '+name+ ']!=b.[ '+name+ '] then ' ', '+name+ ':( ' '+rtrim(a. '+name+ ')+ ' ': ' '+rtrim(b. '+name+ ')+ ' ') ' ' else ' ' ' ' end) '
from syscolumns where id=object_id( 'RsRecord ') and name!= 'id '

set @sql= 'select stuff( '+stuff(@sql,1,1, ' ')+ ',1,1, ' ' ' ') as difference from RsRecord_S a,RsRecord b where a.id=1 and b.id=1 '

exec(@sql)