祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 3600|回复: 1

比较两条记录中那些字段不相等

[复制链接]

比较两条记录中那些字段不相等

[复制链接]
yunnet23

主题

0

回帖

6

积分

新手上路

积分
6
贡献
在线时间
小时
2006-10-18 12:38:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×

比较两条记录中那些字段不相等,即某个字段的值是否有改变!

例子如下:

select  nGoodsID, sGoodsDesc, sGoodsName, sSpec , sBrand , nPack ,  sUnit ,nCaseUnits ,
       nCategoryID ,sHome ,sNationID , sNation ,sGoodsLevelID ,sGoodsLevel ,
       sGoodTypeID ,sGoodType ,sTradeModeID ,sTradeMode ,sDepositTypeID , sDepositType ,
       nMinLineUnit ,nMinLineL ,nShelfLife ,nMinDueDay ,sNote ,nLength ,nWidth ,
       nHeight ,nWeight ,nCaseLength ,nCaseWidth ,nCaseHeight ,nCaseWeight ,
       dBeginUseDate ,dEndUseDate ,sMemo1 ,sMemo2 ,sMemo3 ,sMemo4 ,sMemo5 ,
       nLineSize ,nSafeStockDay ,nOPLM ,sOrderModeID ,sOrderMode , nSalePrice ,
       nVipPrice,nSaleTaxRate , sMainBarcode ,nTag ,sChangeUser ,dChangeDate ,dLastUpdateTime
  into #Goods001
  from tGoods
 where nGoodsID = 211

select  nGoodsID, sGoodsDesc, sGoodsName, sSpec , sBrand , nPack ,  sUnit ,nCaseUnits ,
       nCategoryID ,sHome ,sNationID , sNation ,sGoodsLevelID ,sGoodsLevel ,
       sGoodTypeID ,sGoodType ,sTradeModeID ,sTradeMode ,sDepositTypeID , sDepositType ,
       nMinLineUnit ,nMinLineL ,nShelfLife ,nMinDueDay ,sNote ,nLength ,nWidth ,
       nHeight ,nWeight ,nCaseLength ,nCaseWidth ,nCaseHeight ,nCaseWeight ,
       dBeginUseDate ,dEndUseDate ,sMemo1 ,sMemo2 ,sMemo3 ,sMemo4 ,sMemo5 ,
       nLineSize ,nSafeStockDay ,nOPLM ,sOrderModeID ,sOrderMode , nSalePrice ,
       nVipPrice,nSaleTaxRate , sMainBarcode ,nTag ,sChangeUser ,dChangeDate ,dLastUpdateTime
  into #Goods002
  from tGoods
 where nGoodsID = 211

select id=identity(4), name ,dd = convert(varchar(255), ''),cc=convert(varchar(255), '')
    into #Goods003 from tempdb..syscolumns where id = object_id('#Goods001')
 
 declare @Num1 int
 declare @i int
 declare @Name varchar(20)
 declare @GoodsID varchar(8)

 select @GoodsID ='211'
 select @i = 1
 select @Num1 = max(id) from #Goods003

while @i < @Num1+ 1
begin
   select @Name = name from #Goods003 where id = @i
   exec ( 'update #Goods003 set dd = convert(varchar(255), (select ' + @Name+ ' from #Goods001 where nGoodsID = convert(numeric(8,0) , ' + @GoodsID + ' ) ) )where name = '''+@Name+''''  )
   exec ( 'update #Goods003 set cc = convert(varchar(255), (select ' + @Name+ ' from #Goods002 where nGoodsID = convert(numeric(8,0) , ' + @GoodsID + ' ) ) )where name = '''+@Name+''''  )
   select @i = @i + 1 
end

select * from #Goods003 where dd<>cc

drop table #Goods001
drop table #Goods002
drop table #Goods003

共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
yunnet23 楼主

主题

0

回帖

6

积分

新手上路

积分
6
贡献
在线时间
小时
2006-10-18 12:42:02 | 显示全部楼层

将结果插入一个新表:

create table tAlterLog(
nID int identity not null,/*ID,序号,没有实际意义*/
dTradeDate datetime not null,/*时间*/
sTableName varchar(30) not null,/*表名*/
sFieldName varchar(30) not null,/*栏位名*/
sOldValue varchar(255) null,/*原值,如果新增资料,此栏位为空*/
sNewValue varchar(255) not null,/*新值*/
sModuleID varchar(20) null,/*产生这条记录的模块编号*/
sVersion varchar(10) null,/*模块对应的版本号*/
sEditer varchar(20) null,/*产生这条记录的操作人*/
constraint PK_ALTERLOG primary key clustered (nID)
on "default"

)
go

共享共进共赢Sharing And Win-win Results
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-11-1 18:26 , Processed in 0.030403 second(s), 8 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表