Temos uma tabela SQL antiga que foi usada pelo SQL Server 2000 por quase 10 anos.
Nele, nossos números de crachá de funcionário são armazenados char(6)
de 000001
a 999999
.
Estou escrevendo um aplicativo da web agora e preciso armazenar os números dos crachás dos funcionários.
Na minha nova tabela, eu poderia pegar o atalho e copiar a tabela antiga, mas estou esperando por uma transferência de dados melhor, tamanho menor, etc, simplesmente armazenando os int
valores de 1
a 999999
.
Em C #, posso formatar rapidamente um int
valor para o número do emblema usando
public static string GetBadgeString(int badgeNum) {
return string.Format("{0:000000}", badgeNum);
// alternate
// return string.Format("{0:d6}", badgeNum);
}
Como eu modificaria essa consulta SQL simples para formatar o valor retornado também?
SELECT EmployeeID
FROM dbo.RequestItems
WHERE ID=0
Se EmployeeID
for 7135, esta consulta deve retornar 007135
.
FORMAT
função como C # :-)
int
valores ocupam muito menos espaço do que isso char(6)
, e haverá várias dessas entradas por peça fabricada. Eficiência.
DATALENGTH()
) dois bytes cada. Como a coluna pode estar em um índice, você pode economizar mais de 2 MB. E com outras colunas somadas, esses 2 bytes podem ser apenas o suficiente para reduzir o comprimento de uma linha o suficiente para salvar uma página de 4 KB por linha. Será hospedado em uma plataforma móvel ou você pode estar focando sua atenção em uma área improdutiva?
0
s iniciais são significativos para este campo, por que alterá-lo para umINT
?