| 類型 | 範圍 / 精度 | 存儲 (Bytes) | 適用場景 |
|---|---|---|---|
| bigint | -2^63 ~ 2^63-1 | 8 | 極大整數標識、高併發序列 |
| int | -2^31 ~ 2^31-1 | 4 | 標準整數主鍵、計數器(首選) |
| smallint | -2^15 ~ 2^15-1 | 2 | 狀態碼、小範圍枚舉、節省空間 |
| tinyint | 0 ~ 255 | 1 | 布爾擴展、極小枚舉、位掩碼 |
| bit | 0/1/NULL | 1 (8列打包1字節) | 真/假標誌、權限掩碼 |
| decimal / numeric | -10^38+1 ~ 10^38-1,精度 p(1-38),小數位 s(0-p) | 5-17 | 財務金額、精確計量、固定小數位 |
| money | -2^63 ~ 2^63-1,精確到 0.0001 | 8 | 貨幣數據、T-SQL 專用運算優化 |
| smallmoney | -214,748.3648 ~ 214,748.3647 | 4 | 小額貨幣、節省空間 |
| float(n) | -1.79E+308 ~ 1.79E+308,n(1-53) 二進制精度 | 4/8 | 科學計算、近似數值、大動態範圍 |
| real | -3.40E+38 ~ 3.40E+38 (float(24)) | 4 | 單精度浮點、兼容性 |
| 類型 | 範圍 | 精度 | 存儲 | 備註 |
|---|---|---|---|---|
| datetime | 1753-01-01 ~ 9999-12-31 | 3.33 毫秒 | 8 | 通用業務日期時間 |
| smalldatetime | 1900-01-01 ~ 2079-06-06 | 1 分鐘 | 4 | 不需秒精度的日志、排程 |
| 類型 | 最大長度 | Unicode | 存儲 | 選型建議 |
|---|---|---|---|---|
| char(n) | 8,000 | 否 | n 字節 | 固定長度代碼、ISO 標準碼 |
| varchar(n) | 8,000 | 否 | 實際長度+2 | 變長非 Unicode 文本(首選) |
| nchar(n) | 4,000 | 是 | 2n 字節 | 固定長度多語言代碼 |
| nvarchar(n) | 4,000 | 是 | 2*(實際長度)+2 | 變長多語言文本(首選) |
| text | 2^31-1 字符 | 否 | LOB | **棄用**,改用 varchar(max) |
| ntext | 2^30-1 字符 | 是 | LOB | **棄用**,改用 nvarchar(max) |
| 類型 | 最大長度 | 存儲 | 備註 |
|---|---|---|---|
| binary(n) | 8,000 | n 字節 | 固定長度二進制(哈希、加密輸出) |
| varbinary(n) | 8,000 | 實際長度+2 | 變長二進制(文件流、圖片) |
| image | 2^31-1 字節 | LOB | **棄用**,改用 varbinary(max) |
| 類型 | 用途 | 關鍵特性 |
|---|---|---|
| cursor | 游標變量/OUTPUT 參數 | 引用游標結果集 |
| timestamp / rowversion | 樂觀並發版本戳 | 數據庫全局唯一、自動更新、非時間 |
| uniqueidentifier | 全局唯一標識符 (GUID) | 16 字節、NEWID()/NEWSEQUENTIALID() |
| sql_variant | 存儲多種基礎類型值 | 除 text/ntext/image/timestamp/sql_variant 外任意類型 |
| table | 表變量/函數返回表 | 內存優化、臨時結果集 |
| sysname | 系統物件名稱 | nvarchar(128) 同義詞 |
INT IDENTITY(首選),超 21 億 → BIGINT。DECIMAL(19,4) 或 MONEY。FLOAT(53) (即 FLOAT)。NVARCHAR(n),純 ASCII → VARCHAR(n)。VARCHAR(MAX)/NVARCHAR(MAX)/VARBINARY(MAX)(SQL 2005+)。ROWVERSION。UNIQUEIDENTIFIER (NEWSEQUENTIALID 避免頁分裂)。