資料類型定義了資料的儲存格式、範圍、精度與操作語意。正確選擇類型是效能、儲存成本、資料正確性的三重保障。SQL Server 2000 新增 BIGINT、SQL_VARIANT、TABLE 三大類型,大幅擴展建模能力。
整數類型家族
| 類型 | 儲存位元組 | 範圍 | 適用場景 |
TINYINT | 1 | 0 ~ 255 | 狀態碼、旗標、小基數維度 |
SMALLINT | 2 | -32,768 ~ 32,767 | 小範圍計數、年齡、年份 |
INT | 4 | -2,147,483,648 ~ 2,147,483,647 | 主鍵身分識別、通用計數 (預設首選) |
BIGINT | 8 | -9.22E18 ~ 9.22E18 | 超大量資料主鍵、科學計算、全域唯一序號 |

精確數值類型
| 類型 | 精度/小數位 | 儲存位元組 | 適用場景 |
DECIMAL(p,s) / NUMERIC(p,s) | p=1~38, s=0~p | 5~17 位元組 (視精度) | 財務金額、精確測量、任何不可容忍捨入誤差的計算 |
MONEY | 4 位小數固定 | 8 | 貨幣金額 (內部整數儲存,效能優於 DECIMAL) |
SMALLMONEY | 4 位小數固定 | 4 | 小額貨幣、預算項目 |
近似數值類型
| 類型 | 精度 | 儲存位元組 | 適用場景 |
FLOAT(n) | n=1~53 (預設 53, 雙精度) | 4 (n≤24) / 8 (n>24) | 科學計算、統計模型、可容忍微小誤差 |
REAL | 單精度 (7 位有效數字) | 4 | 單精度科學計算、節省空間 |
日期時間類型
| 類型 | 範圍 | 精度 | 儲存位元組 | 備註 |
DATETIME | 1753-01-01 ~ 9999-12-31 | 3.33 毫秒 | 8 | 舊版相容、預設值 GETDATE() |
SMALLDATETIME | 1900-01-01 ~ 2079-06-06 | 1 分鐘 | 4 | 節省空間、精度較低 |
字串類型
| 類型 | 最大長度 | 儲存方式 | 適用場景 |
CHAR(n) | 8,000 | 固定長度,空白填充 | 固定長度代碼 (ISO 代碼、身分證字號) |
VARCHAR(n) | 8,000 | 變動長度 + 2 位元組長度前綴 | 一般文字、描述、可變長度屬性 |
NCHAR(n) | 4,000 | 固定長度 Unicode (2 位元組/字元) | 多語言固定長度代碼 |
NVARCHAR(n) | 4,000 | 變動長度 Unicode | 多語言文字、國際化應用首選 |
TEXT | 2^31-1 (2 GB) | LOB 結構,行外儲存 | 大型文本 (舊版,建議改用 VARCHAR(MAX)) |
NTEXT | 2^30-1 (1 GB) | LOB 結構,行外儲存 | 大型 Unicode 文本 (舊版,建議改用 NVARCHAR(MAX)) |
二進位類型
| 類型 | 最大長度 | 適用場景 |
BINARY(n) | 8,000 | 固定長度二進位 (雜湊值、加密金鑰) |
VARBINARY(n) | 8,000 | 變動長度二進位 (檔案片段、圖片縮圖) |
IMAGE | 2^31-1 | 大型二進位物件 (舊版,建議改用 VARBINARY(MAX)) |
SQL Server 2000 新增特殊類型
| 類型 | 特性 | 典型用途 |
BIGINT | 64 位元整數 | 超大主鍵、序號產生器 |
SQL_VARIANT | 可儲存除 TEXT/NTEXT/IMAGE/TIMESTAMP/SQL_VARIANT 外任意類型值,攜帶中繼資料 (基底型別、精度、小數位、定序) | 動態屬性袋 (EAV 模型)、通用記錄表、異構資料整合 |
TABLE | 資料表值變數/函數回傳型別,支援主鍵/唯一/檢查約束/身分識別欄位 | 預存程式暫存結果集、函數回傳多行、替代臨時表減少重編譯 |
類型選擇決策樹
- 是否整數?→
TINYINT/SMALLINT/INT/BIGINT 依範圍選最小足夠者。
- 是否精確小數?→
DECIMAL/MONEY (財務首選)。
- 是否科學計算可容忍誤差?→
FLOAT/REAL。
- 是否日期時間?→
DATETIME (預設) / SMALLDATETIME (空間敏感)。
- 是否字串?→ Unicode 需求決定 N 前綴;長度 > 8000 用 MAX (SQL 2005+);固定長度用 CHAR/NCHAR。
- 是否二進位?→
VARBINARY/BINARY;大型用 MAX。
- 特殊需求?→
SQL_VARIANT (動態型別)、TABLE (集合傳遞)、XML (SQL 2005+)、HIERARCHYID/GEOGRAPHY/GEOMETRY (SQL 2008+)。
資料類型不是單純的儲存容器,它承載著業務語意、效能特徵、遷移相容性。建立「資料類型選擇規範文件」,納入資料模型審查清單,從源頭杜絕類型不匹配導致的隱含轉換、精度遺失、索引失效等隱性問題。