Udostępnij za pośrednictwem


int, bigint, smallint, and tinyint (Transact-SQL)

Typy precyzyjnych danych będących liczbami całkowitymi.

Typ danych

Zakres

Magazyn

bigint

-2 ^ 63 (-9,223,372,036,854,775,808) do 2 ^ 63-1 (9,223,372,036,854,775,807)

8 Bajty

int

-2 ^ 31 (-2 147 483 648) do 2 ^ 2 147 483 31-1 (647)

4 Bajty

smallint

-2 ^ 15 (-32 768) do 2 ^ 15-1 (32 767)

2 Bajty

tinyint

0 to 255

1 bajt

Remarks

The int data type is the primary integer data type in SQL Server.The bigint data type is intended for use when integer values might exceed the zakres that is supported by the int data type.

bigint mieścił się między smallmoney i int na wykresie priorytet typu danych.

Functions return bigint only if the parameter expression is a bigint data type.SQL Server does not automatically promote other integer data types (tinyint, smallint, and int) to bigint.

Ostrzeżenie

Po użyciu +,-, *, /, lub % operatory arytmetyczne, aby przeprowadzić konwersję bezpośrednia lub pośrednia int, smallint, tinyint, lub bigint wartości stała float, real, decimal lub numeric typy danych, zasady, SQL Server ma zastosowanie, gdy typem danych jest obliczana i dokładność wyniki wyrażenie różnią się w zależności od tego, czy kwerenda jest autoparameterized, czy nie.

W związku z tym podobne wyrażenia w zapytaniach mogą czasami przynosić różne wyniki.Jeśli zapytanie nie podlega automatycznej parametryzacji, wartość stała jest najpierw przekształcana na wartość typu numeric, której dokładność wystarcza do przechowania wartości stałej. Następnie wartość jest przekształcana na dane o wskazanym typie.Na przykład stała wartość 1 jest przekształcana na wartość numeric (1, 0), natomiast stała wartość 250 jest przekształcana na wartość numeric (3, 0).

Gdy kwerenda jest autoparameterized, stała wartość zawsze jest konwertowany na numeric (10, 0) przed dokonaniem konwersji na typ danych końcowego. Styczeń 1, 1753, za pomocą 31 grudnia 9999Na przykład wartość wyniku kwerendy autoparameterized zawierającej wyrażenie SELECT CAST (1.0 / 7 AS float) będzie różnią się od wartości wynik tej samej kwerendy, która nie jest autoparameterized, ponieważ w wynikach kwerendy autoparameterized zostaną obcięte, tak aby mieścił się w numeric (10, 0) Typ danych. Aby uzyskać więcej informacji na temat kwerend parametrycznych zobacz Parametryzacja proste.