我有这个简单的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
列名无效'这是新解释。'
如何摆脱此错误并正确更新行?感谢。
答案 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