int, bigint, smallint e tinyint (Transact-SQL)
Tipos de dados numéricos exatos que usam dados inteiros.
Tipo de dados |
Intervalo |
Armazenamento |
---|---|---|
bigint |
-2^63 (-9.223.372.036.854.775.808) a 2^63-1 (9.223.372.036.854.775.807) |
8 bytes |
int |
-2^31 (-2.147.483.648) a 2^31-1 (2.147.483.647) |
4 bytes |
smallint |
-2^15 (-32.768) a 2^15-1 (32.767) |
2 bytes |
tinyint |
0 a 255 |
1 byte |
Comentários
O tipo de dados int é o tipo de dados inteiro principal do SQL Server. O tipo de dados bigint deve ser usado quando valores inteiros possam exceder o intervalo ao qual tipo de dados int oferece suporte.
bigint está entre smallmoney e int no gráfico de precedência de tipo de dados.
As funções retornam bigint somente se a expressão do parâmetro for de um tipo de dados bigint. O SQL Server não promove automaticamente outros tipos de dados inteiros (tinyint, smallint e int) para bigint.
Cuidado |
---|
Ao usar os operadores aritméticos +, -, *, / ou % para executar a conversão implícita ou explícita de valores constantes int, smallint, tinyint ou bigint nos tipos de dados float, real, decimal ou numeric, as regras que o SQL Server aplica ao calcular o tipo de dados e a precisão dos resultados da expressão diferem, dependendo do fato de a consulta ser ou não automaticamente parametrizada. Portanto, as expressões semelhantes em consultas podem, às vezes, produzir resultados diferentes. Quando uma consulta não for automaticamente parametrizada, o valor constante será primeiramente convertido em numeric, cuja precisão é apenas grande o bastante para conter o valor da constante, antes de converter no tipo de dados especificado. Por exemplo, o valor constante 1 é convertido em numeric (1, 0) e o valor constante 250 é convertido em numeric (3, 0). Quando uma consulta for automaticamente parametrizada, o valor constante sempre será convertido em numeric (10, 0) antes da conversão no tipo de dados final. Quando o operador / estiver envolvido, não apenas a precisão do tipo do resultado pode diferir entre consultas semelhantes, mas também o valor do resultado. Por exemplo, o valor do resultado de uma consulta automaticamente parametrizada que inclua a expressão SELECT CAST (1.0 / 7 AS float) diferirá do valor do resultado da mesma consulta que não é automaticamente parametrizada, porque os resultados da primeira serão truncados para que caibam no tipo de dados numeric (10, 0). Para obter mais informações sobre consultas parametrizadas, consulte Parametrização simples. |
Consulte também