比如有两张表A和B
表A如下:
客户拼音     客户简称
NY           农业
JS           建设
表B如下:
客户代码      客户全称              客户拼音 
101           中国农业银行           null
102           中国建设银行           null我要通过表A和表B链接把表A的客户拼音更新到表B中去。或者用什么办法可以做到。
得到更新表B的结果如下:客户代码      客户全称              客户拼音 
101           中国农业银行           NY
102           中国建设银行           JS

解决方案 »

  1.   

    ----------------------------------------------------------------
    -- Author  :SQL77(只为思齐老)
    -- Date    :2010-01-13 14:47:05
    -- Version:
    --      Microsoft SQL Server  2000 - 8.00.194 (Intel X86) 
    -- Aug  6 2000 00:57:48 
    -- Copyright (c) 1988-2000 Microsoft Corporation
    -- Desktop Engine on Windows NT 5.1 (Build 2600: Service Pack 3)
    --
    ----------------------------------------------------------------
    --> 测试数据:[A]
    if object_id('[A]') is not null drop table [A]
    go 
    create table [A]([客户拼音] varchar(2),[客户简称] varchar(4))
    insert [A]
    select 'NY','农业' union all
    select 'JS','建设'
    --> 测试数据:[B]
    if object_id('[B]') is not null drop table [B]
    go 
    create table [B]([客户代码] int,[客户全称] varchar(12),[客户拼音] Varchar(12))
    insert [B]
    select 101,'中国农业银行',null union all
    select 102,'中国建设银行',null
    --------------开始查询--------------------------UPDATE B SET 客户拼音=A.客户拼音 FROM A,B WHERE CHARINDEX(A.客户简称,B.客户全称)>0
    SELECT * FROM B
    ----------------结果----------------------------
    /* (所影响的行数为 2 行)
    (所影响的行数为 2 行)
    (所影响的行数为 2 行)客户代码        客户全称         客户拼音         
    ----------- ------------ ------------ 
    101         中国农业银行       NY
    102         中国建设银行       JS(所影响的行数为 2 行)
    */
      

  2.   

    ----------------------------------------------------------------
    -- Author  :fredrickhu(我是小F,向高手学习)
    -- Date    :2010-01-13 14:47:16
    -- Version:
    --      Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) 
    -- Nov 24 2008 13:01:59 
    -- Copyright (c) 1988-2005 Microsoft Corporation
    -- Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 1)
    --
    ----------------------------------------------------------------
    --> 测试数据:[A]
    if object_id('[A]') is not null drop table [A]
    go 
    create table [A]([客户拼音] varchar(2),[客户简称] varchar(4))
    insert [A]
    select 'NY','农业' union all
    select 'JS','建设'
    --> 测试数据:[B]
    if object_id('[B]') is not null drop table [B]
    go 
    create table [B]([客户代码] int,[客户全称] varchar(12),[客户拼音] sql_variant)
    insert [B]
    select 101,'中国农业银行',null union all
    select 102,'中国建设银行',null
    --------------开始查询--------------------------
    update 
      b
    set
      客户拼音=a.客户拼音
    from
      a,b
    where
      charindex(a.客户简称,b.客户全称)>0
    select * from b
    ----------------结果----------------------------
    /* 客户代码        客户全称         客户拼音
    ----------- ------------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    101         中国农业银行       NY
    102         中国建设银行       JS(2 行受影响)
    */
      

  3.   

    update 
      b
    set
      客户拼音=a.客户拼音
    from
      a,b
    where
      charindex(a.客户简称,b.客户全称)>0