我写了如下:
UPDATE daor SET daor.料号 = liaohao.liaoh
FROM liaohao
WHERE daor.品名 like '%liaohao.mingc%' 
and daor.料号 is null
想让daor.品名中包含liaohao.mingc的时候执行更新,这样写不认,只认liaohao.mingc这是个字符串,不是字段

解决方案 »

  1.   

    我写了如下:
    UPDATE daor SET daor.料号 = liaohao.liaoh
    FROM liaohao
    WHERE charindex(liaohao.mingc,daor.品名)>0
    and daor.料号 is null 
    charindex(liaohao.mingc,daor.品名)>0
      

  2.   

    UPDATE daor SET daor.料号 = liaohao.liaoh
    FROM liaohao
    WHERE daor.品名 like '%'+liaohao.mingc+'%'  
    and daor.料号 is null
      

  3.   

    UPDATE daor SET daor.料号 = 'liaohao.liaoh'   --字符串要加单引号
    FROM liaohao
    WHERE daor.品名 like '%liaohao.mingc%' 
    and daor.料号 =''   更新之前先查一下select * from    liaohao
    WHERE daor.品名 like '%liaohao.mingc%' 
    and daor.料号 ='';
    看看是否是你想要更新的内容
      

  4.   

    IF OBJECT_ID('daor') IS NOT NULL DROP TABLE daor
    IF OBJECT_ID('liaohao') IS NOT NULL DROP TABLE liaohao
    CREATE TABLE daor(料号 VARCHAR(10), 品名 VARCHAR(10))
    INSERT daor
    SELECT NULL, '1pingming2'
    CREATE TABLE liaohao(liaoh VARCHAR(10), mingc VARCHAR(10))
    INSERT liaohao
    SELECT 'liaohao1', 'pingming' UNION ALL
    SELECT 'liaohao2', 'pingming'
    go
    --SQL:
    SELECT *
    FROM liaohao a, daor b
    WHERE b.品名 like '%'+ a.mingc +'%'  
    and b.料号 is null
    --SQL:
    UPDATE b 
    SET b.料号 = a.liaoh
    FROM liaohao a, daor b
    WHERE b.品名 like '%'+ a.mingc +'%'  --注意:[liaohao.料号]会选择like成功的第一条记录的[liaohao.liaoh]来更新.
    and b.料号 is null
    GO
    SELECT * FROM daor
    /*
    料号         品名
    ---------- ----------
    liaohao1   1pingming2(1 row(s) affected)
    */