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.