如何避免插入重复项    请给我示例 说明一下

解决方案 »

  1.   

    select * from a
    union
    select * from b
      

  2.   


    DECLARE @tablea TABLE(id int)
    INSERT INTO @tablea 
    SELECT 1 UNION ALL
    SELECT 2 UNION ALL
    SELECT 3 DECLARE @tableb TABLE(id int)
    INSERT INTO @tableb 
    SELECT 2 UNION ALL
    SELECT 3 UNION ALL
    SELECT 4 SELECT  *   FROM    @tablea
    UNION
    SELECT  *   FROM    @tableb/*
    id
    -----------
    1
    2
    3
    4
    */
      

  3.   


    union会去掉重复的
    union all不会
      

  4.   

    union 与 union all后者不去除重复
      

  5.   


    DECLARE @tablea TABLE(id int)
    INSERT INTO @tablea 
    SELECT 1 UNION ALL
    SELECT 2 UNION ALL
    SELECT 3 DECLARE @tableb TABLE(id int)
    INSERT INTO @tableb 
    SELECT 2 UNION ALL
    SELECT 3 UNION ALL
    SELECT 4 DECLARE @i INT
    SET @i=4 --要插入的值IF((SELECT COUNT(1) FROM (
    SELECT  *   FROM    @tablea
    UNION
    SELECT  *   FROM    @tableb)aa WHERE id=@i)>0)
    SELECT '存在重复'
    ELSE
    INSERT INTO @tablea SELECT @i
      

  6.   

    insert into a select * from b where b.id not in (select id from a)