更新所有记录,除非value ='abc'

时间:2014-02-07 02:22:28

标签: sql sql-server-2008 replace sql-update

我需要更新所有记录,其中telephone1字符长度= 12,但如果ContactId ='代码'中列出的值,则不要更新

我认为我的逻辑错了..

Update Contact
SET Telephone1 = replace(Telephone1, '-', '')
where LEN(Telephone1) = 12
NO UPDATE if ContactId IN ('332C9C1F-B397-E211-97CB-00265585B80D', '860E5A58-4551-E311-BEC7-005056AF5FAD', 'D3EBAAAD-F8B7-E211-928F-005056AF5FAD', '6B4C76A2-5792-E211-97CB-00265585B80D', '4F4AB38B-353B-E311-BEC7-005056AF5FAD')

感谢任何帮助/建议。

由于

1 个答案:

答案 0 :(得分:3)

试试这个:

Update Contact
   SET Telephone1 = replace(Telephone1, '-', '')
 where LEN(Telephone1) = 12
   AND ContactId NOT IN ('332C9C1F-B397-E211-97CB-00265585B80D', 
                         '860E5A58-4551-E311-BEC7-005056AF5FAD', 
                         'D3EBAAAD-F8B7-E211-928F-005056AF5FAD', 
                         '6B4C76A2-5792-E211-97CB-00265585B80D', 
                         '4F4AB38B-353B-E311-BEC7-005056AF5FAD')