建立名為 user 的資料表,執行 SELECT * FROM user WHERE id = '1' 時拋出:
Incorrect syntax near the keyword 'user'.
user 是 SQL Server **保留關鍵字** (系統資料表 sys.sysusers 別名),直接作為物件名稱會被解析器誤判為關鍵字。
SELECT * FROM [user] WHERE id = '1';
SET QUOTED_IDENTIFIER ON;
SELECT * FROM "user" WHERE id = '1';
SELECT * FROM dbo.[user] WHERE id = '1';
| 關鍵字 | 建議替換名 |
|---|---|
| user | users, app_user, sys_user |
| order | orders, order_info |
| group | groups, user_group |
| key | key_id, api_key |
| index | idx, index_info |
| desc | description, remark |
| status | state, record_status |
users),欄位避開保留字。DB::table('user') 會自動處理)。