表A为会员资料表
表B为会员使用特殊功能系统的次数纪录表(纪录会员操作功能系统成功的次数纪录表)表A 字段 Char_S 
表B 字段 Char_S
两个资料表下都有Char_S字段,是对应的相同编号
为了避免表B内有重覆资料,如何判断表B资料表内没有该会员资料后新增一笔资料的語法?

解决方案 »

  1.   


        insert into 表B(列1,列2 .....)
        select 对应的列1,列2 from 表A a 
        where not exists(select 1 from 表B b where b.Char_s = a.Char_s
        and b.用户ID = a.用户ID )
      

  2.   

    --#1.如果一次插入,参考1楼
    --#2.如果单线程,多次插入或更新,插入前用exists来判断即可
    --#3.如果多线程多次插入或更新,可用锁表,主键异常捕获,辅助表等方式解决。最简单的就是用主键TRY CATCH,就是说把Char_S字段设置为主键或唯一索引,如果用exists没有控制住,就只能在try.catch.中处理。
      

  3.   

    INSERT INTO 表B
    (
    Char_S
    )
    SELECT 
    Char_S 
    FROM 表A a 
    WHERE NOT EXISTS(SELECT 1 FROM 表B WHERE Char_s = a.Char_s)
      

  4.   

    表B为会员使用特殊功能系统的次数纪录表(纪录会员操作功能系统成功的次数纪录表)为了避免表B内有重覆资料,如何判断表B资料表内没有该会员资料后新增一笔资料的語法?
    -------------
    B表的记录按照你的定义,Char_S字段本来就应该有重复的记录?
    而且你这样做也避免不了B内没有重复的资料
      

  5.   

    謝謝各位高手援助...問題克服解決QQ...受教甚多..TKS