| 型別 | 最大長度 | 儲存特性 | 適用場景 |
|---|---|---|---|
char(n) | 8,000 | 定長,空格補齊 | 固定長度代碼 (如身分證字號、ISO 代碼) |
varchar(n) | 8,000 | 變長,實際長度+2位元組 | 一般可變字串 |
text | 2^31-1 (2GB) | 大物件 (LOB),舊版相容 | 大量文字 (建議改用 varchar(max)) |
nchar(n) | 4,000 | Unicode 定長,雙位元組 | 固定長度多國語言 |
nvarchar(n) | 4,000 | Unicode 變長 | 含中日韓文字的可變字串 |
ntext | 2^30-1 (1GB) | Unicode LOB | 大量 Unicode 文字 (建議改用 nvarchar(max)) |
關鍵差異:n* 型別統一用 2 位元組儲存每個字元 (含英文),char/varchar 英文 1 位元組、中文 2 位元組 (視定序)。nvarchar(4000) 可存 4000 個中文或英文;varchar(8000) 可存 8000 英文或 4000 中文。
| 型別 | 範圍 | 精度 | 儲存大小 |
|---|---|---|---|
datetime | 1753-01-01 ~ 9999-12-31 | 3.33 毫秒 | 8 位元組 |
smalldatetime | 1900-01-01 ~ 2079-06-06 | 1 分鐘 | 4 位元組 |
SQL Server 2008+ 新增 date, time, datetime2, datetimeoffset,精度更高、範圍更大、符合 ANSI 標準。
| 型別 | 範圍 | 大小 |
|---|---|---|
bigint | -2^63 ~ 2^63-1 | 8 位元組 |
int | -2^31 ~ 2^31-1 | 4 位元組 |
smallint | -32,768 ~ 32,767 | 2 位元組 |
tinyint | 0 ~ 255 | 1 位元組 |
bit | 0 或 1 | 1 位元 (8欄位壓縮1位元組) |
decimal(p,s) / numeric(p,s) 完全等效。p (精度) 1~38,s (小數位) 0~p。float(n):n=1~24 為 4 位元組 (同 real),25~53 為 8 位元組。範圍 ±1.79E308。real = float(24),範圍 ±3.40E38。nvarchar / nchar。char / nchar。decimal(18,2) 等。varchar(max) / nvarchar(max) (2005+)。int / bigint + IDENTITY。精準選型能節省儲存空間、提升索引效能、避免隱含轉換錯誤。