新手请教老师,关于两个表某字段数据重复处理问题。
数据库A,数据库B为相同的库,里面数据不同。现在想把数据库B中的CHAR表中的name列和数据库A中的CHAR表中的name列对比一下,让B库中CHAR表中的name列如果有和A库中重复的自动加后缀z,这种语句该怎么写。

解决方案 »

  1.   

    update B库.CHAR表 set name列=name列+'z' from A库.CHAR表 where B库.CHAR表.name列=A库.CHAR表.name列关于 update set from 你可以上网随便搜一个看看用法
      

  2.   


    use B 
    update [char] set name=name+'z' 
    from [char] where name in (select name from A.dbo.[char])
      

  3.   

    完整的代码可以是这样的:go
    create database A
    go
    create database B
    use A
    create table [char](name varchar(20))
    insert into [char] 
    select 'A' union all
    select 'B' union all
    select 'C' union all
    select 'D'
    go
    use B 
    create table [char](name varchar(20))
    insert into [char] 
    select 'B' union all
    select 'C' union all
    select 'E' union all
    select 'F'update [char] set name=name+'z' 
    from [char] where name in (select name from A.dbo.[char])select * from [char]
    /*
    name
    --------------------
    Bz
    Cz
    E
    F
    */
      

  4.   


    --那我也好好的详细的写--测试数据
    CREATE DATABASE A
    go
    CREATE DATABASE B
    USE A
    CREATE TABLE [char] ( name VARCHAR(20) )
    INSERT  INTO [char]
            SELECT  'A'
            UNION ALL
            SELECT  'B'
            UNION ALL
            SELECT  'C'
            UNION ALL
            SELECT  'D'
    go
    USE B 
    CREATE TABLE [char] ( name VARCHAR(20) )
    INSERT  INTO [char]
            SELECT  'B'
            UNION ALL
            SELECT  'C'
            UNION ALL
            SELECT  'E'
            UNION ALL
            SELECT  'F'
            
    --更改操作
    UPDATE  t2
    SET     t2.[name] = t2.[name] + 'z'
    FROM    A.dbo.[CHAR] t1 ,
            B.dbo.[CHAR] t2
    WHERE   t2.[NAME] = t1.[NAME]--查看结果
    SELECT  *
    FROM    b.dbo.[char]--修改后的结果
    name
    --------------------
    Bz
    Cz
    E
    F(4 行受影响)