【问题标题】:SQL update like failSQL 更新失败
【发布时间】:2014-04-05 15:22:49
【问题描述】:
UPDATE ITEM
SET DaggerAc=0, AxeAc=0, SwordAc=0, MaceAc=0, SpearAc=0, BowAc=0
WHERE strName LIKE "%krowaz%"

错误:

Msg 207, Level 16, State 1, Line 3  
Invalid column name '%krowaz%'

我的问题在哪里?

【问题讨论】:

  • "%krowaz%" => '%krowaz%' ?
  • 米诺非常感谢!
  • @Mino 将其发布为 asnwer。

标签: sql sql-server sql-server-2008 sql-like


【解决方案1】:
"%krowaz%" => '%krowaz%'. 

在 SQL Server 中,您应该使用单引号。

【讨论】:

    【解决方案2】:

    使用单引号代替双引号,即

    UPDATE ITEM
    SET DaggerAc=0, AxeAc=0, SwordAc=0, MaceAc=0, SpearAc=0, BowAc=0
    WHERE strName LIKE '%krowaz%'
    

    单引号用于表示 SQL 中字符串的开始和结束。 SQL 中一般不使用双引号。

    【讨论】:

    • 添加到答案:在 SQL Server 双引号中包含 - 对象名称,而不是字符串;)如错误所示(无效列 - 字符串被解释为字段名称)
    • 不完全正确,这实际上取决于 QUOTED_IDENTIFIER 设置。
    猜你喜欢
    • 2017-04-02
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多