首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2000 新資料類型 bigint:突破 21 億限制的大整數解決方案

     編輯:關於SqlServer

背景:int 型別範圍不足

  • INT:-2^31 ~ 2^31-1(-2,147,483,648 ~ 2,147,483,647),4 Bytes。
  • 信用卡號、大型科學計算、全域唯一序號等場景易超出範圍。

BIGINT 特性

  • 範圍:-2^63 ~ 2^63-1(-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)
  • 儲存:8 Bytes
  • 型別優先順序:高於 INT、低於 SMALLMONEY

使用限制與行為

  • 無隱含轉換:SQL Server 不會自動 將 INT 轉為 BIGINT,需顯式 CAST 或 CONVERT。
  • 函數回傳型別傳遞:參數為 BIGINT 時,AVG、CEILING、FLOOR、MAX、MIN、ROUND、SUM 等函數回傳 BIGINT。
  • 適用所有整數語法位置:ALTER PROCEDURE、ALTER TABLE、CREATE PROCEDURE、CREATE TABLE、DECLARE @var BIGINT。
  • 目錄檢視可見:INFORMATION_SCHEMA.COLUMNS、sys.columns 等正確回報 BIGINT。

實務範例

CREATE TABLE BigNumbers (
    id BIGINT IDENTITY PRIMARY KEY,
    credit_card BIGINT NOT NULL,
    scientific_value BIGINT
);

INSERT INTO BigNumbers (credit_card, scientific_value)
VALUES (9223372036854775807, -9223372036854775808);

效能考量

8 Bytes vs 4 Bytes:索引體積翻倍、I/O 增加、快取命中率下降。僅在確實超出 INT 範圍時使用,不可作為預設整數型別濫用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved