日期:2014-05-17  浏览次数:20567 次

非自增列复制数据
insert into[Rnd].[dbo].[R_RndTitle](Id,Title) select (select MAX(Id)+1 From[Rnd].[dbo].[R_RndTitle]),Title from [1111].[dbo].[R_RndTitle] aa where not exists(select 0 from [Rnd].[dbo].[R_RndTitle] bb where bb.title=aa.title)

2表结构一致,合并数据。ID int 不是自增列。  


怎么改上面的语句

------解决方案--------------------
SQL code

--你的照着改下就好了,先把第一张表中最大的id取出来,然后数据库2中的按rownumber排下序+最大的id新增到你第一张表就好了
declare @R_RndTitle1 table(id int,title varchar(20))
declare @R_RndTitle2 table(id int,title varchar(20))
insert into @R_RndTitle1 values(3,'20');
insert into @R_RndTitle2 values(1,'20');
insert into @R_RndTitle2 values(2,'30');
--先取出最大的id
declare @id int 
select @id=max(id) from @R_RndTitle1
--将不存在的新增进来
insert into @R_RndTitle1
select row_number() over(order by id)+@id rn,title from @R_RndTitle2 b 
    where not exists (select 1 from @R_RndTitle1 c where b.title=c.title)
select * from @R_RndTitle1
/*
id          title
----------- --------------------
3           20
4           30
*/