高分求 对比两个结构相同表中的不同数据的做法

SoloRen 2004-07-09 04:15:38
我有两个相同结构的数据库,现里边的内容随着使用而造成了内部数据不同
我想把个别表的数据刷新成相同的,即a表 ,b表 把a表中有的b表中没有的查询出来插入b表,相似把b表里有而a表里没有的数据查询出来插入a表。它们中都有的相同数据忽略掉。按照他们的主键查询,主键相同认为数据相同。

...全文
159 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
SoloRen 2004-07-09
  • 打赏
  • 举报
回复
暂时解决了不知道又没有什么问题,我去掉了我正在使用的数据库表中的一个列,就好了。谢谢大家了,结贴了,有问题再问。
SoloRen 2004-07-09
  • 打赏
  • 举报
回复
我想应该是该表有触发器之类的东西吧,导致的我不能运行那条语句
SoloRen 2004-07-09
  • 打赏
  • 举报
回复
style是我的表的关键字
pbsql 2004-07-09
  • 打赏
  • 举报
回复
[style]
SoloRen 2004-07-09
  • 打赏
  • 举报
回复
应该是一样的结构,我的一个数据库就是从另一个的备份上还原过来的,只是进行过不同的插入数据操作
SoloRen 2004-07-09
  • 打赏
  • 举报
回复
在输入具体的列名后报另外一个错误
服务器: 消息 155,级别 15,状态 1,行 1
'style' 不是可以识别的 OPTIMIZER LOCK HINTS 选项。
pbsql 2004-07-09
  • 打赏
  • 举报
回复
再说一遍:这说明表结构不一样(包括字段顺序)
SoloRen 2004-07-09
  • 打赏
  • 举报
回复
我把那个表复制道另一个数据库中就能进行那个条语句,为什么在我正在使用的数据库中却不行呢?
有什么其他的原因吗?
zjcxc 2004-07-09
  • 打赏
  • 举报
回复
插入时指定列的列表

insert 表(列的列表)
select 对应列的列表 from 另一表
pbsql 2004-07-09
  • 打赏
  • 举报
回复
这说明结构不一样,你还说是一样
SoloRen 2004-07-09
  • 打赏
  • 举报
回复
报一个错误阿
服务器: 消息 213,级别 16,状态 5,行 1
插入错误: 列名或所提供值的数目与表定义不匹配。
zjcxc 2004-07-09
  • 打赏
  • 举报
回复
a,b表合并

--同一库:
insert a select * from b
where not exists(select 1 from a where 主键=b.主键)

insert b select * from a
where not exists(select 1 from b where 主键=a.主键)


--不同库
insert 库a..a select * from 库b..b b
where not exists(select 1 from 库a..a where 主键=b.主键)

insert 库b..b select * from 库a..a a
where not exists(select 1 from 库b..b where 主键=a.主键)


pbsql 2004-07-09
  • 打赏
  • 举报
回复
不同数据库表的写法:
dbname.dbo.table1
or
dbname..table1

sql语法一样
netcoder 2004-07-09
  • 打赏
  • 举报
回复
那就在表前加前缀呀
库名.用户名.a
库名.用户名.b

netcoder 2004-07-09
  • 打赏
  • 举报
回复
insert a
select * from b
where 主键 not in(select 主键 from a)

然后

insert b
select * from a
where 主键 not in(select 主键 from b)
SoloRen 2004-07-09
  • 打赏
  • 举报
回复
两个表在不同的数据库中
zjcxc 2004-07-09
  • 打赏
  • 举报
回复
--a,b表合并
insert a select * from b where not exists(select 1 from a where 主键=b.主键)
insert b select * from a where not exists(select 1 from b where 主键=a.主键)

swordmanli 2004-07-09
  • 打赏
  • 举报
回复
insert into b
select a.*
from a left outer join b
on(a.pk = b.pk)
where b.pk is null

insert into a
select b.*
from b left outer join a
on(a.pk = b.pk)
where a.pk is null
SoloRen 2004-07-09
  • 打赏
  • 举报
回复
分不够再给,急需
pbsql 2004-07-09
  • 打赏
  • 举报
回复
insert into a
select * from b where not exists(select * from a where a.主键=b.主键)

反过来一样

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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