本帖最后由 y252999822 于 2010-10-31 11:30:06 编辑

解决方案 »

  1.   

    CREATE TABLE #A(id INT IDENTITY(1,1),NAME VARCHAR(20),shengfenzheng VARCHAR(20),dizhi VARCHAR(200));INSERT INTO #A
            (  NAME, shengfenzheng, dizhi )
    VALUES  ('小狗','266645435454664','湖北')CREATE TABLE #B(id INT IDENTITY(1,1),NAME VARCHAR(20),shengfenzheng VARCHAR(20),dizhi VARCHAR(200))INSERT INTO #B( NAME, shengfenzheng, dizhi )
    SELECT '小明','','中山' UNION
    SELECT '小强','254656456546564','广东广州' UNION
    SELECT '小花花','','重庆万州' UNION
    SELECT '小华','','四川成都'SELECT * FROM #A
    SELECT * FROM #BUPDATE #B SET shengfenzheng = CASE #B.shengfenzheng WHEN '' THEN #A.shengfenzheng WHEN NULL THEN #A.shengfenzheng ELSE #A.shengfenzheng END 
    FROM #A INNER JOIN 
    #B ON #A.NAME = #B.NAME AND #A.dizhi = #B.dizhi
      

  2.   


    估计我没说法不不对吧   
    我的主表在数据库总是存在的·····excel导入的数据时才跟数据库主表A1进行对比!!!!!对比必须要姓名和地址,用LIKE模糊查询如果同时满足 且B1中没有身份证号,才把A1中的身份证插入到B1中,其他不符合 的或者是有身份证号的,都不变但是同样要上传到数据库中!!!!!
      

  3.   


    --直接SQL语句即可。
    update b1 set 身份证号 = a1.身份证号
    from b1 , a1 
    where b1.姓名 = a.姓名 and b1.地址 = a.地址
    --如果要存储过程则入下:
    create proc my_proc as
    begin
      update b1 set 身份证号 = a1.身份证号
      from b1 , a1 
      where b1.姓名 = a.姓名 and b1.地址 = a.地址
    end