標籤: 暫無標籤

1 bigint -bigint 數據

  bigint為Transact-SQL的系統數據類型。

  SQL Server在整數值超過 int 數據類型支持的範圍時,將使用 bigint 數據類型。為了實現兼容性,int 數據類型仍是 Microsoft SQL Server 2005 中的主要整數數據類型。

  除非明確說明,否則那些接受 int 表達式作為其參數的函數、語句和系統存儲過程都不會改變,從而不會支持將 bigint 表達式隱式轉換為這些參數。因此,當 bigint 值在 int 數據類型支持的範圍內時,SQL Server 才將 bigint 隱式轉換為 int。如果 bigint 表達式包含了一個在 int 數據類型支持範圍之外的值,就會在運行時出現轉換錯誤。

2 bigint -Bigint大小

  儘管int依然是SQL Server 2000中最主要的整數數據類型,但是SQL Server 2000還是新增加了整數數據類型bigint,它應用於整數超過int數據範圍的場合。

  int數據類型所表示的數值範圍從-2^31到2^31-1,也就是說,你可以用int數據類型來表達-2,147,483,648到2,147,483,647(即大約正負二十億)之間的整數。一個int型佔用四個位元組的存儲空間。

  而bigint可以精確的表示從-2^63到2^63-1(即從-9,223,372,036,854,775,808到 9,223,372,036,854,775,807)之間的整數,它佔用了八個位元組的存儲空間。

3 bigint -Transact-SQL 函數中的 bigint

  儘管 SQL Server 有時會將 TINYINT 或 SMALLINT 值提升為 int 數據類型,但不會自動將 tinyint、smallint 或 int 值提升為 bigint 數據類型。例如,如果參數表達式的數據類型是 tinyint 或 smallint,某些聚合函數會把返回值的數據類型提升為 int,而這些聚合函數將不會返回 bigint 數據類型的值,除非參數表達式本身就是 bigint 類型。

  當指定 bigint 參數並且返回值也是 bigint 類型時,可以使用下列 Transact-SQL 函數。

  ABS FLOOR POWER AVG IDENTITY RADIANS CEILING MAX

  ROUND COALESCE MIN SIGN DEGREES NULLIF SUM

  當引用 bigint 列或變數,但不希望返回值也為 bigint 數據類型時,可以使用下列函數。

  @@IDENTITY ISNULL VARP COL_LENGTH IsNumeric

  DATALENGTH STDEV[P]

  SQL Server 提供下列專門使用 bigint 值的函數。

  COUNT_BIG

  當對組中的項目計數時,如果值超過 int 數據類型支持的範圍,並且返回 bigint 數據類型的值,則使用此函數。除了返回的數據類型外,COUNT_BIG 類似於 COUNT 函數。

  ROWCOUNT_BIG

  當對執行的最後一條語句所影響的行數進行計數,而且值超過 int 數據類型支持範圍時,使用此函數。除了 ROWCOUNT_BIG 返回 bigint 數據類型外,此函數類似於 ROWCOUNT 函數。

4 bigint -其他 Transact-SQL 元素中的 bigint

  CAST 和 CONVERT 子句支持 bigint。這些子句對 bigint 使用與其他整數數據類型相同的轉換規則。在數據類型優先表中,bigint 數據類型位於 int 之上和 smallmoney 之下。有關 bigint 轉換的詳細信息,請參閱 CAST 和 CONVERT (Transact-SQL)。

  在使用 CASE 表達式時,如果 result_expression 或可選的 else_result_expression 的值是 bigint 數據類型,將得到 bigint 類型的結果。

  可以在 Transact-SQL 語句中指定了整數數據類型的所有語法位置使用 bigint 數據類型:

  * ALTER PROCEDURE

  * ALTER TABLE

  * CREATE PROCEDURE

  * CREATE TABLE

  * DECLARE 變數

  此外,SQL Server 目錄組件報告有關 bigint 列的信息。

5 bigint -指定 bigint 常量

  在 int 數據類型支持範圍之外的數字常量仍被解釋為 numeric,這些數字的小數位數為 0,其精度為足以保存所指定的值。例如,常量 3000000000 被解釋為 numeric。這些 numeric 常量被隱式轉換為 bigint,並可對 bigint 列和變數賦值:

  CREATE TABLE BigintTable (ColA bigint)

  INSERT INTO BigintTable VALUES (3000000000)

  SELECT *

  FROM BigintTable

  WHERE ColA = 3000000000

  還可以將常量轉換為 bigint:

  CAST(3000000000 AS bigint)

  若要將 bigint 值放入 sql_variant 列中,請使用此方法:

  CREATE TABLE VariantTable (ColA sql_variant)

  -- Inserts a value with a numeric base data type.

  INSERT INTO VariantTable VALUES (3000000000)

  -- Inserts a value with a bigint base data type.

  INSERT INTO VariantTable VALUES ( CAST(3000000000 AS bigint) )

上一篇[DBCC]    下一篇 [bigint]

相關評論

同義詞:暫無同義詞