Tenemos una tabla SQL antigua que fue utilizada por SQL Server 2000 durante casi 10 años.
En él, nuestros números de tarjeta de empleado se almacenan char(6)
del 000001
al 999999
.
Ahora estoy escribiendo una aplicación web y necesito almacenar los números de identificación de los empleados.
En mi nueva tabla, podría tomar el atajo y copiar la tabla anterior, pero espero una mejor transferencia de datos, un tamaño más pequeño, etc., simplemente almacenando los int
valores de 1
a 999999
.
En C #, puedo formatear rápidamente un int
valor para el número de placa usando
public static string GetBadgeString(int badgeNum) {
return string.Format("{0:000000}", badgeNum);
// alternate
// return string.Format("{0:d6}", badgeNum);
}
¿Cómo modificaría esta simple consulta SQL para formatear también el valor devuelto?
SELECT EmployeeID
FROM dbo.RequestItems
WHERE ID=0
Si EmployeeID
es 7135, esta consulta debería regresar 007135
.
FORMAT
función como C # :-)
int
valores ocupan mucho menos espacio que char(6)
, y habrá múltiples de estas entradas por pieza que se fabrique. Eficiencia.
DATALENGTH()
) dos bytes cada uno. Dado que la columna puede estar en un índice, podría estar ahorrando más de 2 MB. Y con otras columnas sumadas, esos 2 bytes podrían ser suficientes para reducir la longitud de una fila lo suficiente como para ahorrar una página de 4 KB por fila. ¿Se alojará en una plataforma móvil o es posible que centre su atención en un área improductiva?
0
s iniciales son importantes para este campo, ¿por qué cambiarlas a unaINT
?