Udostępnij za pośrednictwem


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

Typy danych dokładna liczba, które używają danych integer.

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 (648) do 2 ^ 31-1 (2 147 483 647)

4 Bajty

smallint

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

2 Bajty

tinyint

0 to 255

1 Bajt

Uwagi

int Typ danych jest typ danych integer podstawowego w SQL Server.bigint Typ danych jest przeznaczony do użytku, gdy wartości całkowitych może przekroczyć zakres , który jest obsługiwany przez int typu danych.

bigintmieści się między smallmoney i int w danych wpisz pierwszeństwo wykresu.

Funkcje zwrotu bigint tylko wtedy, gdy parametr wyrażenie bigint typu danych.SQL Serverautomatycznie nie wspierają inne typy danych Liczba całkowita (tinyint, smallint, i int) do bigint.

PrzestrogaPrzestroga

Podczas korzystania z +, -, *, lub operatory arytmetyczne % do wykonywania bezpośrednia lub pośrednia konwersja int, smallint, tinyint, lub bigint stała wartości do float, real, decimal lub numeric typy danych, zasady, SQL Server ma zastosowanie, gdy typ danych jest obliczana i dokładność wyrażenie wyniki różnią się w zależności od tego, czy kwerenda jest autoparameterized lub nie.

W związku z tym podobne wyrażenia w kwerendach, czasami może wygenerować różne wyniki.Gdy kwerenda nie jest autoparameterized, stała wartość jest najpierw konwertowany numeric, których dokładność jest wystarczająco duży, aby pomieścić wartość stała, przed dokonaniem konwersji danych określonego typu.Na przykład stała wartość 1 jest konwertowany na numeric (1, 0), a stała wartość 250 jest konwertowana na numeric (3, 0).

Gdy kwerenda jest autoparameterized, stała wartość zawsze jest konwertowany na numeric (10, 0) przed dokonaniem konwersji typu danych końcowych.Gdy / operator jest zaangażowane, nie tylko można precision typu wyniku różnią podobnych kwerend, ale wartość wyniku może różnić się również.Na przykład wartość wyniku kwerendy autoparameterized, który zawiera wyrażenie SELECT CAST (1.0 / 7 AS float) będzie się różniła od wartość wyniku tę samą kwerendę, która nie jest autoparameterized, ponieważ wyniki kwerendy autoparameterized zostanie obcięty do dopasowanie w numeric (10, 0) typu danych.Aby uzyskać więcej informacji na temat kwerend parametrycznych, zobacz Parametryzacja proste.