2015-03-13 97 views
0

我有這個簡單的SQL查詢:錯誤在SQL UPDATE子句

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

,我得到這個錯誤:

消息207,級別16,狀態1,行1
無效的列名'這是新的解釋。' 。

如何擺脫此錯誤並正確更新行?謝謝。

+5

使用單引號。而不是'''使用'''所以''這是新的解釋。「'這變成了'''這是新的解釋。' – 2015-03-13 07:37:48

回答

5

雙引號通常用於對象名稱(例如列名稱)。這是SQL-92標準的一部分。

在ANSI SQL中,雙引號引用對象名稱(例如表格),允許它們包含不允許的字符,或與保留字(避免這種情況)相同。

單引號字符串litral

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

而不是使用雙引號,使用單引號,如:

SET [EXPLANATION] = '<i>new explanation</i>' 
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