Microsoft SQL Server admite siete categorías distintas de datos. De estos, cadenas binarias permitir datos codificados representados como objetos binarios.
Los tipos de datos en la categoría de cadenas binarias incluyen:
- poco las variables almacenan un solo bit con un valor de 0, 1 o NULL.
- binario (n) tienda de variables norte bytes de datos binarios de tamaño fijo. Estos campos pueden almacenar un máximo de 8,000 bytes.
- varbinary (n) las variables almacenan datos binarios de longitud variable de aproximadamente norte bytes Pueden almacenar un máximo de 8.000 bytes.
- varbinary (max) las variables almacenan datos binarios de longitud variable de aproximadamente norte bytes Pueden almacenar un máximo de 2 GB y almacenar realmente la longitud de los datos más dos bytes adicionales.
- imagen las variables almacenan hasta 2 GB de datos y se usan comúnmente para almacenar cualquier tipo de archivo de datos (no solo imágenes).
los imagen El tipo está programado para la desaprobación en una versión futura de SQL Server. Los ingenieros de Microsoft recomiendan usar varbinary (max) en lugar de imagen Tipos para el desarrollo futuro.
Usos apropiados
Utilizar poco columnas cuando necesita almacenar tipos de datos de sí o no, representados por ceros y unos. Utilizar binario columnas cuando el tamaño de las columnas son relativamente uniformes. Utilizar varbinary columnas cuando se espera que el tamaño de la columna exceda 8K o puede estar sujeto a una variabilidad significativa en el tamaño por registro.
Conversiones
T-SQL: la variante de SQL utilizada en Microsoft SQL Server: datos de los pads de la derecha cuando se convierte de cualquier tipo de cadena a binario o varbinary tipo. Cualquier otro tipo de conversión a un tipo binario produce un pad izquierdo. Este relleno se efectúa mediante el uso de ceros hexadecimales.
Debido a esta conversión y al riesgo de truncamiento, si el campo posterior a la conversión no es lo suficientemente grande, es posible que los campos convertidos puedan generar errores aritméticos sin emitir un mensaje de error.