SQL UPDATE CLAUSE中的错误

时间:2015-03-13 07:37:15

标签: sql sql-server sql-update

我有这个简单的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
  列名无效'这是新解释。'

如何摆脱此错误并正确更新行?感谢。

3 个答案:

答案 0 :(得分:5)

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

在ANSI SQL中,双引号引用对象名称(例如表格),允许它们包含其他方式不允许的字符,或者与保留字词相同(实际上避免这样做。)

字符串litral的单引号

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

我们也可以使用双引号更新下表,只需在查询上方添加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