代码之家  ›  专栏  ›  技术社区  ›  James

SQL命令不更改数据

  •  1
  • James  · 技术社区  · 15 年前

    我正在使用下面的sql命令更新名为address的列,该值包含换行符,我想用分号替换它们。在QueryAnalayzer中,预览看起来很完美,但是当我在EnterpriseManager(MSSQL2000)中检查数据时,我仍然看到正方形,即换行符。我不付零钱吗?我哪里做错了?谢谢

    alt text

    5 回复  |  直到 6 年前
        1
  •  11
  •   pjp    15 年前

    你需要使用 更新 声明!

    中的替换 选择 只是更改输出而不是表中的数据。

    BEGIN TRAN
    UPDATE Customers SET Address = REPLACE(Address, char(10) + char(13), ' ') .... etc
    
    --Check you like the change
    SELECT * FROM Customers
    --COMMIT --uncomment this to commit the changes.
    
        2
  •  2
  •   Stefan Haubold    15 年前

    那就是:

    UPDATE customers SET Address = REPLACE(REPLACE(REPLACE(Address,CHAR(10)+CHAR(13),' '),CHAR(10),';'),CHAR(13),';')
    
        3
  •  1
  •   n8wrl    15 年前
    UPDATE Customers
       SET Address = REPLACE(.....)
    
        4
  •  1
  •   Gertjan    15 年前

    在选定对象内执行替换时,仅更改“选定”数据。所以替换是在显示数据之前完成的。select不接触表数据。列中的数据需要通过更新语句进行更新,如:

    UPDATE customers SET
        Address = REPLACE(Address,CHAR(10)+CHAR(13), ' ')
    
        5
  •  -1
  •   IordanTanev    15 年前

    问题是当第一个替换完成时,文本char(10)和char(13)被替换为“”并且下一个替换nerev什么也不做