正確的命名規範能提升程式碼可讀性、避免語法錯誤並符合團隊開發標準。本文詳細解析 SQL Server 兩類識別碼 (Regular / Delimited) 的命名規則、保留字限制與特殊前綴含義。
| 類型 | 定義 | 是否需分隔符 | 範例 |
|---|---|---|---|
| 一般識別碼 | 嚴格符合命名規則 | 不需要 | CustomerTable, @OrderCount, #TempTable |
| 分隔識別碼 | 不符合規則 (含空格、保留字、特殊字元) | 必須用 [] 或 "" (QUOTED_IDENTIFIER ON) | [Order Details], [Select], ["My-Table"] |
_、@、#、$。| 前綴 | 含義 | 範例 | 範圍/生命週期 |
|---|---|---|---|
@ | 區域變數 / 參數 | @CustomerID | Batch/程序內 |
@@ | 全域變數 (系統函數) | @@ROWCOUNT, @@IDENTITY | 伺服器範圍/連線相關 |
# | 區域暫存表/程序 | #TempOrders | 目前 Session 結束自動刪除 |
## | 全域暫存表/程序 | ##GlobalTemp | 建立者 Session 結束且無其他參考時刪除 |
Customer, OrderDetail (避免複數)CustomerID, OrderDate (PK 以 ID 結尾,FK 以 TableID 結尾)usp_ 前綴 + 動詞 + 名詞 usp_GetCustomerOrders, usp_InsertOrderufn_ 前綴 ufn_CalculateTaxtrg_ + 表名 + 動作 trg_Customer_AfterUpdateIX_ + 表名 + 欄位 IX_Order_CustomerID@customerID, @orderDatetblCustomer)、過度縮寫、中文識別碼 (跨工具/編碼相容性風險)。SET QUOTED_IDENTIFIER ON (預設/ANSI 標準):雙引號 "" 為分隔識別碼,單引號 '' 為字串常值。SET QUOTED_IDENTIFIER OFF:雙引號也可作為字串常值,易造成混淆,建議永遠保持 ON。遵循一致命名規範並善用分隔識別碼處理特殊名稱,能有效減少開發與維護階段的語法錯誤與溝通成本。