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 000001a 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 intvalores de 1a 999999.
Em C #, posso formatar rapidamente um intvalor 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 EmployeeIDfor 7135, esta consulta deve retornar 007135.
FORMATfunção como C # :-)
intvalores 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?
0s iniciais são significativos para este campo, por que alterá-lo para umINT?