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

Изменения: 14 апреля 2006 г.

Типы точных числовых данных, использующие целые значения.

Тип данных Диапазон Хранилище

bigint

от -2^63 (-9 223 372 036 854 775 808) до 2^63-1 (9 223 372 036 854 775 807)

8 байт

int

от -2^31 (-2 147 483 648) до 2^31-1 (2 147 483 647)

4 байта

smallint

от -2^15 (-32 768) до 2^15-1 (32 767)

2 байта

tinyint

от 0 до 255

1 байт

Замечания

Тип данных int является основным типом целочисленных данных в SQL Server 2005. Тип данных bigint используется для хранения значений, выходящих за диапазон, поддерживаемый типом данных int.

В таблице приоритетов типов данных тип bigint располагается между smallmoney и int.

Функции возвращают значения типа bigint только в том случае, когда параметр выражения также имеет тип bigint. В SQL Server не предусмотрено автоматического преобразования других типов целочисленных данных (tinyint, smallint и int) в значения типа bigint.

ms187745.Caution(ru-ru,SQL.90).gifВнимание!
При использовании таких арифметических операторов, как +, -, *, / или %, для явного или неявного преобразования констант типа int, smallint, tinyint и bigint в значения типа float, real, decimal и numeric в SQL Server используются различные правила определения типов данных и точности результата, зависящие от наличия автоматической параметризации запроса. Поэтому одинаковые выражения в различных запросах могут иногда возвращать различные результаты. В случае отсутствия в запросе автоматической параметризации константа сначала преобразуется в значение типа numeric, точности которого хватает для ее хранения, а затем происходит преобразование в заданный тип данных. Например, константа 1 преобразуется в numeric (1, 0), а константа 250 — в numeric (3, 0). При наличии в запросе автоматической параметризации константа всегда сначала преобразуется в значение типа numeric (10, 0), а затем в данные конечного типа. При использовании оператора «/» могут различаться как точность, так и само значение результата. Например, результат автопараметризованного запроса, включающего в себя выражение SELECT CAST (1.0 / 7 AS float), отличается от аналогичного запроса без автоматической параметризации, так как результаты выполнения автопараметризированного запроса усекаются до значений, соответствующих типу данных numeric (10, 0). Дополнительные сведения о параметризованных запросах см. в разделе Простая параметризация.

См. также

Справочник

ALTER TABLE (Transact-SQL)
Функции CAST и CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
Типы данных (Transact-SQL)
DECLARE @local\_variable (Transact-SQL)
DELETE (Transact-SQL)
INSERT (Transact-SQL)
SET @local\_variable (Transact-SQL)
UPDATE (Transact-SQL)

Другие ресурсы

Преобразование типов данных (компонент Database Engine)

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

14 апреля 2006 г.

Измененное содержимое:
  • Изменен третий абзац предупреждения, начинающийся со слов «При наличии в запросе автоматической параметризации...» В предыдущих версиях абзац начинался со слов «При отсутствии в запросе автоматической параметризации...»