sql >> Base de Datos >  >> RDS >> Sqlserver

Lista de tipos de datos en SQL Server 2017

Este artículo contiene una referencia rápida de los tipos de datos proporcionados por el sistema disponibles en SQL Server 2017, junto con información básica, como la longitud máxima en bytes, la precisión, la escala y si el tipo de datos admite valores NULL o no (1 significa que es anulable, 0 significa que no es anulable).

Números exactos

Nombre Longitud máxima Precisión Escala ¿Anulable?
grande 8 19 0 1
bit 1 1 0 1
decimales 17 38 38 1
int 4 10 0 1
dinero 8 19 4 1
numérico 17 38 38 1
minúscula 2 5 0 1
dinero pequeño 4 10 4 1
tinyint 1 3 0 1

Números aproximados

Nombre Longitud máxima Precisión Escala ¿Anulable?
flotar 8 53 0 1
real 4 24 0 1

Fecha y hora

Nombre Longitud máxima Precisión Escala ¿Anulable?
fecha 3 10 0 1
fechahora2 8 27 7 1
fechahora 8 23 3 1
desplazamiento de fecha y hora 10 34 7 1
pequeña fecha y hora 4 16 0 1
tiempo 5 16 7 1

Cadenas de caracteres

Nombre Longitud máxima Precisión Escala ¿Anulable?
caracter 8000 0 0 1
texto 16 0 0 1
varchar 8000 0 0 1

Cadenas de caracteres Unicode

Nombre Longitud máxima Precisión Escala ¿Anulable?
nchar 8000 0 0 1
ntext 16 0 0 1
nvarchar 8000 0 0 1

Cadenas binarias

Nombre Longitud máxima Precisión Escala ¿Anulable?
binario 8000 0 0 1
imagen 16 0 0 1
varbinario 8000 0 0 1

Otros tipos de datos

Nombre Longitud máxima Precisión Escala ¿Anulable?
id de jerarquía 892 0 0 1
variante_sql 8016 0 0 1
geometría -1 0 0 1
geografía -1 0 0 1
marca de tiempo* 8 0 0 0
identificador único 16 0 0 1
xml -1 0 0 1
nombre del sistema 256 0 0 0

* La marca de tiempo tipo de datos es un sinónimo de rowversion tipo de datos. Vea abajo para más información.

Los tipos 'cursor', 'table' y 'rowversion'

Recuperé la información en las tablas anteriores a través de sys.types vista del catálogo del sistema. Además de los tipos anteriores, la documentación de Microsoft sobre tipos de datos también enumera el cursor y mesa tipos, así como rowversion en lugar de marca de tiempo .

El tipo de 'marca de tiempo'

Microsoft informa que la marca de tiempo la sintaxis está en desuso. Se recomienda que ahora usemos rowversion en lugar de marca de tiempo siempre que sea posible en nuestras declaraciones DDL.

Sin embargo, mientras tanto, es posible que las columnas todavía parezcan estar definidas como timestamp incluso cuando especifica explícitamente rowversion al crearlos (usando Transact-SQL). Sin embargo, Microsoft informa que esta es la sintaxis correcta para usar en el futuro.

También tenga en cuenta que timestamp en T-SQL/SQL Server es diferente de la marca de tiempo tipo de datos definido en la norma ISO.

Parece que la razón por la que quedó en desuso se debe a la confusión que causó su nombre. Microsoft reconoció esto en 2007 y aconsejó que trataría de solucionarlo de forma compatible con versiones anteriores en versiones futuras.

Consulte su propia base de datos

Puede recuperar información de tipos de datos para sus propias bases de datos utilizando sys.types vista del sistema. Consulte Cómo devolver una lista de tipos de datos en SQL Server para obtener una explicación y ejemplos. La ejecución de esta vista también devuelve cualquier alias y tipos definidos por el usuario que estén en la base de datos.