T-SQL 內建函數擴展了標準 SQL 能力,主要分為七大類:系統函數、字串函數、Text/Image 函數、數學函數、日期函數、資料類型轉換、安全性函數。本文聚焦系統函數的核心用法。
SELECT function_name(argument[s])
可用於 SELECT 列表、WHERE 條件或任何允許運算式的位置。
USER_ID('zyf') → 回傳使用者 ID(如 3)USER_NAME(3) → 回傳使用者名稱(如 zyf)USER_NAME() → 回傳目前使用者(如 dbo)規則: 系統管理員為資料庫擁有者時 ID=1;Guest 登入 ID=-1;資料庫擁有者固定為 dbo (ID=1);Guest 使用者 ID=2。
| 函數 | 參數 | 回傳值 |
|---|---|---|
| COL_NAME | (object_id, column_id[, database_id]) | 資料行名稱 |
| COL_LENGTH | (object_name, column_name) | 資料行定義長度(實際資料長度用 DATALENGTH) |
| DATALENGTH | (expression) | 運算式實際長度(支援資料行或常數) |
| DB_ID | ([database_name]) | 資料庫 ID,省略則為目前資料庫 |
| DB_NAME | ([database_id]) | 資料庫名稱,省略則為目前資料庫 |
| HOST_ID | () | 用戶端進程主機 ID |
| HOST_NAME | () | 用戶端主機名稱 |
| INDEX_COL | (object_name, index_id, key_#[, user_id]) | 索引資料行名稱 |
| ISNULL | (expression1, expression2) | expression1 為 NULL 時回傳 expression2 |
善用系統函數可避免直接查詢系統表,提升程式碼可讀性與效能。開發時應熟記核心函數用法,減少硬式編碼。