Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido manualmente. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

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

Tipos de dados numéricos exatos que usam dados inteiros.

Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual).

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

O tipo de dados int é o tipo de dados inteiros primário 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 de parâmetro for um tipo de dados bigint. SQL Server não promove automaticamente outros tipos de dados de inteiro (tinyint, smallinte int) a bigint.

Observação sobre cuidados 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).

Quando integers são convertidos implicitamente em um tipo de dados character, se o integer for muito grande para ser ajustado no campo de caractere, o SQL Server digitará o caractere ASCII 42, o asterisco (*).

As constantes de inteiro maiores que 2.147. 483. 647 são convertidas em tipo de dados decimal, não no tipo de dados bigint. O exemplo a seguir mostra que quando o valor limite é excedido, o tipo de dados do resultado é alterado de int para decimal.

SELECT 2147483647 / 2 AS Result1, 2147483649 / 2 AS Result2 ;

Aqui está o conjunto de resultados.

Result1      Result2
1073741823   1073741824.500000

O exemplo a seguir cria uma tabela usando os tipos de dados bigint, int, smallint e tinyint. Os valores são inseridos em cada coluna e retornados na instrução SELECT.

CREATE TABLE dbo.MyTable
(
  MyBigIntColumn bigint
 ,MyIntColumn  int
 ,MySmallIntColumn smallint
 ,MyTinyIntColumn tinyint
);

GO

INSERT INTO dbo.MyTable VALUES (9223372036854775807, 214483647,32767,255);
 GO
SELECT MyBigIntColumn, MyIntColumn, MySmallIntColumn, MyTinyIntColumn
FROM dbo.MyTable;

Aqui está o conjunto de resultados.

MyBigIntColumn       MyIntColumn MySmallIntColumn MyTinyIntColumn
-------------------- ----------- ---------------- ---------------
9223372036854775807  214483647   32767            255

(1 row(s) affected)
Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft