首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 識別碼命名規則完整解析

     編輯:關於SqlServer

正確的命名規範能提升程式碼可讀性、避免語法錯誤並符合團隊開發標準。本文詳細解析 SQL Server 兩類識別碼 (Regular / Delimited) 的命名規則、保留字限制與特殊前綴含義。

兩種識別碼類型

類型定義是否需分隔符範例
一般識別碼嚴格符合命名規則不需要CustomerTable, @OrderCount, #TempTable
分隔識別碼不符合規則 (含空格、保留字、特殊字元)必須用 [] 或 "" (QUOTED_IDENTIFIER ON)[Order Details], [Select], ["My-Table"]

一般識別碼命名規則 (四大原則)

  1. 首字元:Unicode 2.0 字母 (含中文、日文等)、底線 _、@、#、$。
  2. 後續字元:首字元允許字元 + 數字 (0-9) + @、#、$、底線。
  3. 不可為保留字:T-SQL 保留關鍵字 (SELECT, INSERT, TABLE 等) 不能作為一般識別碼,必須加分隔符。
  4. 不可含空格/特殊字元:除上述允許符號外,不得包含空格、運算子、標點符號等。
  5. 長度限制:最多 128 個字元 (本地暫存表 #temp 為 116 字元)。

特殊前綴的特定含義

前綴含義範例範圍/生命週期
@區域變數 / 參數@CustomerIDBatch/程序內
@@全域變數 (系統函數)@@ROWCOUNT, @@IDENTITY伺服器範圍/連線相關
#區域暫存表/程序#TempOrders目前 Session 結束自動刪除
##全域暫存表/程序##GlobalTemp建立者 Session 結束且無其他參考時刪除

最佳命名慣例建議 (業界通用)

  • 資料表/檢視:PascalCase,單數名詞 Customer, OrderDetail (避免複數)
  • 欄位:PascalCase CustomerID, OrderDate (PK 以 ID 結尾,FK 以 TableID 結尾)
  • 預存程序:usp_ 前綴 + 動詞 + 名詞 usp_GetCustomerOrders, usp_InsertOrder
  • 函數:ufn_ 前綴 ufn_CalculateTax
  • 觸發器:trg_ + 表名 + 動作 trg_Customer_AfterUpdate
  • 索引:IX_ + 表名 + 欄位 IX_Order_CustomerID
  • 變數/參數:camelCase @customerID, @orderDate
  • 避免使用:保留字、匈牙利標記法 (tblCustomer)、過度縮寫、中文識別碼 (跨工具/編碼相容性風險)。

QUOTED_IDENTIFIER 設定影響

  • SET QUOTED_IDENTIFIER ON (預設/ANSI 標準):雙引號 "" 為分隔識別碼,單引號 '' 為字串常值。
  • SET QUOTED_IDENTIFIER OFF:雙引號也可作為字串常值,易造成混淆,建議永遠保持 ON。
  • 建立索引檢視、計算欄位索引、XML 索引時 必須為 ON。

遵循一致命名規範並善用分隔識別碼處理特殊名稱,能有效減少開發與維護階段的語法錯誤與溝通成本。

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