首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SQL Server 中插入字串變數時遇到「User」關鍵字語法錯誤的解決方法

     編輯:程式設計綜合問答

問題背景

在使用 JDBC 向 SQL Server 資料庫寫入資料時,開發者常會直接拼接 SQL 字串,例如:

String sql = "insert into User values('" + username + "','" + password1 + "','" + sex + "','" + phoneNumber + "','" + email + "','" + hobby + "')";
st.executeUpdate(sql);

執行後卻拋出例外:

com.microsoft.sqlserver.jdbc.SQLServerException: 關鍵字 'User' 附近有語法錯誤。

錯誤原因

User 是 SQL Server 的保留關鍵字,直接作為資料表名稱會導致解析錯誤。資料庫引擎無法區分它是識別碼還是關鍵字,因此報錯。

解決方案

使用方括號 [] 將資料表名稱括起來,明確告知引擎這是一個識別碼:

String sql = "insert into [User] values('" + username + "','" + password1 + "','" + sex + "','" + phoneNumber + "','" + email + "','" + hobby + "')";

最佳實踐建議

  • 盡量避免使用保留字作為資料表或欄位名稱。
  • 若必須使用,請一律加上方括號(SQL Server)或反引號(MySQL)進行轉義。
  • 更推薦使用 PreparedStatement 參數化查詢,既能防止 SQL 注入,也能避免此類語法問題。

總結

遇到「關鍵字附近有語法錯誤」時,首先檢查資料表、欄位名稱是否為保留字,加上適當的轉義符號即可快速解決。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved