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 不是自增列。    
怎么改上面的语句

解决方案 »

  1.   


    --你的照着改下就好了,先把第一张表中最大的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
    */