Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Lista de tipos de dados no SQL Server 2017


Este artigo contém uma referência rápida dos tipos de dados fornecidos pelo sistema disponíveis no SQL Server 2017, juntamente com algumas informações básicas, como comprimento máximo em bytes, precisão, escala e se o tipo de dados é anulável ou não (1 significa que é anulável, 0 significa que não é anulável).


Números exatos

Nome Comprimento máximo Precisão Escala Anulável?
grande 8 19 0 1
bit 1 1 0 1
decimal 17 38 38 1
int 4 10 0 1
dinheiro 8 19 4 1
numérico 17 38 38 1
pequeno 2 5 0 1
dinheiro pequeno 4 10 4 1
tinyint 1 3 0 1

Números aproximados

Nome Comprimento máximo Precisão Escala Anulável?
flutuar 8 53 0 1
real 4 24 0 1

Data e hora

Nome Comprimento máximo Precisão Escala Anulável?
data 3 10 0 1
datahora2 8 27 7 1
datahora 8 23 3 1
deslocamento de data e hora 10 34 7 1
smalldatetime 4 16 0 1
hora 5 16 7 1

Sequências de caracteres

Nome Comprimento máximo Precisão Escala Anulável?
caractere 8000 0 0 1
texto 16 0 0 1
varchar 8000 0 0 1

Sequências de caracteres Unicode

Nome Comprimento máximo Precisão Escala Anulável?
nchar 8000 0 0 1
ntext 16 0 0 1
nvarchar 8000 0 0 1

Strings binárias

Nome Comprimento máximo Precisão Escala Anulável?
binário 8000 0 0 1
imagem 16 0 0 1
varbinário 8000 0 0 1

Outros tipos de dados

Nome Comprimento máximo Precisão Escala Anulável?
hierarquia 892 0 0 1
sql_variant 8016 0 0 1
geometria -1 0 0 1
geografia -1 0 0 1
carimbo de data e hora* 8 0 0 0
identificador exclusivo 16 0 0 1
xml -1 0 0 1
nome do sistema 256 0 0 0

* O carimbo de data e hora tipo de dados é sinônimo de rowversion tipo de dados. Veja abaixo mais informações.

Os tipos 'cursor', 'table' e 'rowversion'


Recuperei as informações nas tabelas acima por meio do sys.types visualização do catálogo do sistema. Além dos tipos acima, a documentação da Microsoft sobre tipos de dados também lista o cursor e tabela tipos, bem como rowversion em vez de carimbo de data e hora .

O tipo 'timestamp'


A Microsoft informa que o timestamp sintaxe está obsoleta. É recomendado que agora usemos rowversion em vez de carimbo de data e hora sempre que possível em nossas instruções DDL.

No entanto, enquanto isso, você pode descobrir que as colunas ainda parecem estar definidas como timestamp mesmo quando você especifica explicitamente rowversion ao criá-los (usando Transact-SQL). No entanto, a Microsoft informa que essa é a sintaxe correta a ser usada daqui para frente.

Observe também que carimbo de data e hora no T-SQL/SQL Server é diferente do timestamp tipo de dados definido na norma ISO.

Parece que o motivo pelo qual foi preterido é devido à confusão que seu nome causou. A Microsoft reconheceu isso em 2007 e aconselhou que tentariam resolvê-lo de maneira compatível com versões anteriores em versões futuras.

Verifique seu próprio banco de dados


Você pode recuperar informações de tipo de dados para seus próprios bancos de dados usando o sys.types visão do sistema. Consulte Como retornar uma lista de tipos de dados no SQL Server para obter uma explicação e exemplos. A execução dessa exibição também retorna qualquer alias e tipos definidos pelo usuário que estão no banco de dados.