相同表结构的数据插入

jason19810924 2012-03-29 08:15:55
两个一样的数据库里面表结构一样,保存不同数据。现在将两个一样的表合拼。。但是主键重复。。。怎么插入啊。



...全文
307 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
了解 2012-04-06
  • 打赏
  • 举报
回复
是呀,大家都听的不明白了,不是说要插入吗?怎么又变成更改表的主键了呢?希望lz给予更充分的说明.
jason19810924 2012-04-06
  • 打赏
  • 举报
回复
我的意思更改B表主键,再插入。。
koumingjie 2012-04-06
  • 打赏
  • 举报
回复
到底想怎么搞!!!!!!
自己的需求明白吗?主键重复要怎么办???
了解 2012-04-06
  • 打赏
  • 举报
回复
上面那个是主表导入,可按照上面那个格式再导入从表,不过要加个条件的

insert into 数据库a..表b

select outid,guestno,empno from 数据库b..表b where outid not in
(select outid from 数据库a..表b) and outid in
(select outid from 数据库a..表a)

不知道你能否看明白。简单说下,就是把B库的B表,插入库A的B表,但B表主键不冲突,且插入到B表中的明细和A表中的主键也要存在的。
了解 2012-04-06
  • 打赏
  • 举报
回复
insert into 数据库a..表a

select outid,guestno,empno from 数据库a1..表a1 where outid not in
(select outid from 数据库a..表a)

勿勿 2012-04-06
  • 打赏
  • 举报
回复
主键就别导入撒。
jason19810924 2012-04-06
  • 打赏
  • 举报
回复
有主鍵重復
D_B_H 2012-04-06
  • 打赏
  • 举报
回复
所以才有uniqueidentifier这么个类型.
LZ的主键好像是自增的吧.
取消两库a表主键;
update A.dbo.a set A.dbo.a.outid = A.dbo.a.outid + MAX(B.dbo.b.outid)
update A.dbo.b set A.dbo.b.outid = A.dbo.b.outid + MAX(B.dbo.b.outid)
用'导入数据'把A库数据追加到B库
恢复两库a表主键


LZ记得先备份数据.
Oo_o_oO 2012-03-31
  • 打赏
  • 举报
回复
select *from table1
union all
select *from table2
auqcffso 2012-03-30
  • 打赏
  • 举报
回复

declare @macid int;
select @macid=max(ISNULL(主健,0)) from tab1
insert into tab1 (主健,f1,f2,f3)
select row_number()over(select (0))+@macid as 主健,f1,f2,f3 from 库名.dbo.tab2
jason19810924 2012-03-29
  • 打赏
  • 举报
回复
是两个数据库。。
A数据库,表a
outid,guestno,empno
1,001,01
表b
outid,code,num
1,XX,30
1,XXXX,40
1,XXX,60


数据库A1,表a1
outid,guestno,empno
1,006,05
表b1
outid,code,num
1,yy,30
1,YYYY,50
1,XX,40
1,X,40
1,XXX,60

现将,a,a1合并,b,b1合并。。outid是a主键。。 又对应表b
这个清楚了吧
黄_瓜 2012-03-29
  • 打赏
  • 举报
回复
insert into 数据库..表b(col1,col2....) select col1,col2.... from tb

你怎么会有主键重复呢?你的难题究竟是什么样的,是导入还是合并。
jason19810924 2012-03-29
  • 打赏
  • 举报
回复
不是這么簡单,还有个从表B也要弄呢
A主表结构
outid guestno,empno
B从表结构
outid,code,num

两个表数据导入另外一个数据库的两个表中

chkaka 2012-03-29
  • 打赏
  • 举报
回复
先将两表(不包括主键)合并、去重,用select union all ,然后将结果插入一张临时表tb_temp (带有自动增长列的表中)。然后将A库的这个表清空,将tb_temp 同步到A库的表中。
我看见佛 2012-03-29
  • 打赏
  • 举报
回复
insert into tab1 (f1,f2,f3) select f1,f2,f3 from tab2

27,579

社区成员

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

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