2011-08-15 41 views
-3

那麼,我在我的數據庫中,一個字段調用int,並且我在C#上創建了一個程序,它更新了 'int'和一些其他字段,直到int字段說錯誤句法。 ,我希望SQL只是一個字段的名稱而不是關鍵字。 非常感謝。在SQL語句中使用語言關鍵字

+0

請發佈產生錯誤的SQL。 –

+1

向我們顯示代碼。 –

+8

提示:不要使用關鍵字作爲標識符 - 生活就這麼簡單!如果您不能更改它,SQL Server的方括號中的環繞標識符,MySQL的後退標記符號,Oracle的雙引號...... –

回答

7

INT是保留字。您可以通過在背蜱包圍他們將保留字在MySQL:

SELECT `int` FROM mytable ... 

但如果您使用保留字作爲標識符,避免它的誠實容易。也就是說,在定義表格時,將其他名稱命名爲其他名稱。

還建議爲列指定更清楚描述其內容或用途的內容。 int是非常通用的,所以它可能會令人困惑;這就像命名一個C#函數thefunction()。 :-)

請參閱http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords.html瞭解MySQL版本的保留字列表。


回覆您的評論:

注意使用正確的類型報價符號。使用單引號分隔字符串和日期文字。在MySQL中使用反單引號來界定標識符爲列,表等

SELECT ... WHERE `column` = 'string' 

在美國的鍵盤,背面蜱上與符號(〜)相同的密鑰。


我很抱歉假設您使用的是MySQL。您可能正在使用Microsoft SQL Server或其他品牌的RDBMS。 Microsoft SQL Server不使用back-ticks;相反,您需要將方括號中的標識符括起來。

另請參見Do different databases use different name quote?

+0

非常感謝你們,但它仍然無法正常工作,那就是我試圖優化的代碼:更新字符SET'int'='5'WHERE name ='myname'和im仍然得到:你的SQL語法有錯誤;檢查對應於你的MySQL服務器版本的手冊,在''int'='5'附近使用正確的語法WHERE name ='myname''在第1行謝謝你們, – user895450