萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

SQL Server「Incorrect syntax near the keyword 'user'」錯誤解析與修正

錯誤重現

建立名為 user 的資料表,執行 SELECT * FROM user WHERE id = '1' 時拋出:

Incorrect syntax near the keyword 'user'.

根本原因

user 是 SQL Server **保留關鍵字** (系統資料表 sys.sysusers 別名),直接作為物件名稱會被解析器誤判為關鍵字。

解決方案

方法 1:方括號括起來 (SQL Server 標準)

SELECT * FROM [user] WHERE id = '1';

方法 2:雙引號 (需開啟 QUOTED_IDENTIFIER)

SET QUOTED_IDENTIFIER ON;
SELECT * FROM "user" WHERE id = '1';

方法 3:加上 Schema 前綴 (最佳實踐)

SELECT * FROM dbo.[user] WHERE id = '1';

避坑清單:常見保留關鍵字

關鍵字建議替換名
userusers, app_user, sys_user
orderorders, order_info
groupgroups, user_group
keykey_id, api_key
indexidx, index_info
descdescription, remark
statusstate, record_status

最佳實踐建議

  1. 命名規範:表名用複數名詞 (users),欄位避開保留字。
  2. ORM/查詢建構器自動加引號 (如 Laravel DB::table('user') 會自動處理)。
  3. 資料庫設計階段即檢查保留字清單。
copyright © 萬盛學電腦網 all rights reserved