SQL 更新子句中的错误



我有一个简单的SQL查询:

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

我收到此错误:

Msg 207,级别 16,状态 1,第 1
行 无效的列名"这是新的解释"。

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

双引号通常用于对象名称(例如列名称)。这是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>'

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

最新更新