雖然 int 仍是 SQL Server 2000 主要整數類型,但為應對超出 int 範圍的需求,SQL Server 2000 新增 bigint 資料類型。
| 特性 | int | bigint |
|---|---|---|
| 位元組數 | 4 bytes | 8 bytes |
| 最小值 | -2^31 (-2,147,483,648) | -2^63 (-9,223,372,036,854,775,808) |
| 最大值 | 2^31-1 (2,147,483,647) | 2^63-1 (9,223,372,036,854,775,807) |
| 適用場景 | 一般整數運算 | 大數值運算 (如信用卡號、科學計算、大型系統 ID) |
bigint 位於 int 之上、smallmoney 之下int 轉換為 bigint,需顯式 CAST 或 CONVERTbigint 時,函數只能回傳 bigint。影響函數:AVG、CEILING、FLOOR、MAX、MIN、ROUND、SUM 等ALTER PROCEDURE、ALTER TABLE、CREATE PROCEDURE、CREATE TABLE、DECLARE 變數bigint 欄位資訊CREATE TABLE BigNumberDemo (
ID BIGINT IDENTITY(1,1) PRIMARY KEY,
CreditCardNumber BIGINT NOT NULL,
ScientificValue BIGINT,
Description NVARCHAR(100)
)
DECLARE @BigVal BIGINT
SET @BigVal = 9223372036854775807 -- 最大值
SELECT @BigVal * 2 -- 算術溢位錯誤,需注意範圍
SELECT SUM(CAST(Amount AS BIGINT)) FROM LargeTransactions -- 避免 SUM 溢位
int 欄位若未達上限,無需盲目改為 bigint (儲存空間加倍)bigintlong、VB.NET Long、C++ __int64、Java longbigint