随机取出不重复的数字做为ID批量插入一张表中要怎么实现
如表A 
ID Name 
11  vcde
13  rcd
表B
ID Name2
1  zly
2  zdd
3  vca
表A的ID 不是自增的。要手动插入,现在要实现把表B的数据插入到表A中。
但表A的ID能够复杂一些,要实现能够不重复的数据,
表A的ID是BigInt 型
像我自己这样写的一个时间的,太烦琐,而且
执行会重复插入IDdeclare @NvarNewLinesID nvarchar(14)
set @NvarNewLinesID = right(convert(nvarchar(10),year(getdate())),2)+convert(nvarchar(10),month(getdate()))+convert(nvarchar(10),day(getdate()))+replace(convert(nvarchar(10),getdate(),114),':','')+cast( floor(rand()*1000000) as nvarchar(10))INSERT INTO 表A(ID,name)
SELECT ID=@NvarNewLinesID,Name2 FROM 表B
请教我要怎么实现不会重复插入复杂的ID

解决方案 »

  1.   

    可以在时间的基础上,在加个rand()
      

  2.   

    这样查一条数据是不会重复,但是我要批量插入到数据库中的时候。他只会执行一次。所以ID都是一样的。declare @NvarNewLinesID nvarchar(16)
    set @NvarNewLinesID = right(convert(nvarchar(10),year(getdate())),2)+convert(nvarchar(10),month(getdate()))+convert(nvarchar(10),day(getdate()))+replace(convert(nvarchar(10),getdate(),114),':','')+cast( floor(rand()*1000000) as nvarchar(10))+Replace(convert(nvarchar(20),RAND()),'.','')
      

  3.   

    INSERT INTO 表A(ID,name)
    SELECT ID=ID+100000000,Name2 FROM 表B