SQL 更新条款中的错误

Error in SQL UPDATE CLAUSE

我有这个简单的 SQL 查询:

  UPDATE [mydb].[dbo].[EXPLANATIONS] 
  SET [EXPLANATION] = " This is the new explanation." 
  WHERE [RECORDNUMBER] = 123456 
    AND [EXPLANATIONNUMBER] = 7;

我得到这个错误:

Msg 207, Level 16, State 1, Line 1
Invalid column name ' This is the new explanation.' .

我怎样才能摆脱这个错误并正确更新行?谢谢

双引号通常用于对象名称(例如列名称)。那是 SQL-92 标准的一部分。

在 ANSI SQL 中,双引号引用对象名称(例如表格),允许它们包含其他不允许的字符,或者与保留字相同(真的要避免这种情况)。

字符串 litral 的单引号

  UPDATE [mydb].[dbo].[EXPLANATIONS] 
  SET [EXPLANATION] = 'This is the new explanation.'
  WHERE [RECORDNUMBER] = 123456 AND [EXPLANATIONNUMBER] = 7;

不要使用双引号,而是使用单引号,例如:

SET [EXPLANATION] = '<i>new explanation</i>'

我们也可以在 table 下面使用双引号进行更新,只需在查询上方添加 set 语句即可。

set QUOTED_IDENTIFIER  off

UPDATE [mydb].[dbo].[EXPLANATIONS] 
  SET [EXPLANATION] = "This is the new explanation."
  WHERE [RECORDNUMBER] = 123456 AND [EXPLANATIONNUMBER] = 7;


set QUOTED_IDENTIFIER  on