У нас є стара таблиця SQL, яку SQL Server 2000 використовував близько 10 років.
У ньому наші номери працівника значок зберігаються як char(6)
від 000001
до 999999
.
Зараз я пишу веб-додаток, і мені потрібно зберігати номери значків співробітників.
У своїй новій таблиці я міг би скористатися скороченням і скопіювати стару таблицю, але сподіваюся на кращу передачу даних, менший розмір тощо, просто зберігаючи int
значення від 1
до 999999
.
У C # я можу швидко відформатувати int
значення для номера значка за допомогою
public static string GetBadgeString(int badgeNum) {
return string.Format("{0:000000}", badgeNum);
// alternate
// return string.Format("{0:d6}", badgeNum);
}
Як я можу змінити цей простий SQL-запит для форматування повернутого значення?
SELECT EmployeeID
FROM dbo.RequestItems
WHERE ID=0
Якщо EmployeeID
це 7135, цей запит повинен повернутися 007135
.
FORMAT
функцію, як C # :-)
int
Значення займають значно менше місця char(6)
, і буде створено кілька цих записів на частину, яка буде виготовлена. Ефективність.
DATALENGTH()
) два байти кожен. Оскільки стовпець може бути в індексі, ви можете зекономити більше 2 Мб. І з додаванням інших стовпців, що 2 байти може бути достатньо, щоб зменшити довжину рядка, щоб зберегти сторінку в 4 КБ на рядок. Чи буде це розміщуватися на мобільній платформі, чи ви можете зосередити свою увагу на непродуктивній зоні?
0
s важливі для цього поля, навіщо взагалі змінювати його на "a"INT
?