插入之前把存在的ID放在一临时表#tb.插入之后进行比较.select * from tb where id not in (select id from #tb)

解决方案 »

  1.   

    --插入前先找到有哪些id
    select id into #t_before from 表insert语句--插入后和插入前比较找到新插入的
    select * from 表 where id not in (select id into #t_before from 表)
      

  2.   

    将这些需要追加的数据事先在临时表中处理即可。即在追加到正式表中之前,把ID数据生成,也就是说这种情况下你的正式表中ID默认值是用不上的。
      

  3.   

    把已存在数据的ID放入临时表的方法不太可行,因为数据量会越来越大,应该把需要追加的数据的ID在临时表中生成。
      

  4.   

    因为Newid()生成的数据是不重复的,所以在哪儿生成都一样,不会出现关键字重复。
      

  5.   

    wangtiecheng(不知不为过,不学就是错!) ( ) 信誉:100    Blog 
    的说法是我想用的,这个对GUID来说可行.可是如果这个列的类型要是int是不是就不好做了?
      

  6.   

    如果用int型的话,每次取表中已存在的最大值,更新待追加数据的ID,一次性追加即可。假设:待追加数据的ID分别为1、2、3...,已存在的最大ID为1000,则直接更新加上1000。处理时使用事务,确保数据处理的一致性和完整性。