非从增列复制数据
非自增列复制数据
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 不是自增列。
怎么改上面的语句
------解决方案--------------------
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 */