请问如何判断两个相同字段的table 中内容发生了变化.

hfy2003 2007-06-27 09:05:52
请问如何判断两个相同字段的table 中内容发生了变化.

例如Table name A
字段
id , name, address, tel
001 张三 南京 137
002 李四 南京 138
003 王五 上海 139

Table name B
字段
id , name, address, tel
001 张三 南京 139
002 李四 南京 138
003 王五 上海 139

如何去比较table A和B 中哪些内容发生了变化.
得出如下的数据
id , name, address, tel
001 张三 南京 139
003 王五 上海 139
张三的电话号码变了, 王五的地址变了


...全文
165 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2007-06-27
  • 打赏
  • 举报
回复
数据库不支持trigger么
hellowork 2007-06-27
  • 打赏
  • 举报
回复
declare @ta table(id varchar(10),name varchar(10),address varchar(10),tel varchar(15))
insert @ta
select '001', '张三', '南京', '137' union all
select '002', '李四', '南京', '138' union all
select '003', '王五', '南京', '139'
declare @tb table(id varchar(10),name varchar(10),address varchar(10),tel varchar(15))
insert @tb
select '001', '张三', '南京', '139' union all
select '002', '李四', '南京', '138' union all
select '003', '王五', '上海', '139'

select * from @tb where checksum(*) not in(select checksum(*) from @ta)

/*结果
id name address tel
---------- ---------- ---------- ---------------
001 张三 南京 139
003 王五 上海 139
*/
yrwx001 2007-06-27
  • 打赏
  • 举报
回复
select * from (select B.id,B.name, B.address,B.tel from A,B where A.id = B.id and A.name = B.name and (A.address <> B.address or A.tel <> B.tel))C
昵称被占用了 2007-06-27
  • 打赏
  • 举报
回复
我上面把姓名改变也放进去了,也许不用,那就改成

select b.* from a,b
where a.id=b.id
and (a.address<>b.address
or a.tel<>b.tel
)
昵称被占用了 2007-06-27
  • 打赏
  • 举报
回复
select b.* from a,b
where a.id=b.id
and (a.name<>b.name
or a.address<>b.address
or a.tel<>b.tel
)

ps:王五的地址并没改变

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧