我有一个简单的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