Mamy starą tabelę SQL, która była używana przez SQL Server 2000 przez blisko 10 lat.
W nim przechowywane są numery naszych identyfikatorów pracowników char(6)
od 000001
do 999999
.
Piszę teraz aplikację internetową i muszę przechowywać numery identyfikatorów pracowników.
W mojej nowej tabeli mógłbym skorzystać ze skrótu i skopiować starą tabelę, ale mam nadzieję na lepszy transfer danych, mniejszy rozmiar itp., Po prostu przechowując int
wartości od 1
do 999999
.
W C # mogę szybko sformatować int
wartość numeru odznaki przy użyciu
public static string GetBadgeString(int badgeNum) {
return string.Format("{0:000000}", badgeNum);
// alternate
// return string.Format("{0:d6}", badgeNum);
}
Jak zmodyfikować to proste zapytanie SQL, aby również sformatować zwracaną wartość?
SELECT EmployeeID
FROM dbo.RequestItems
WHERE ID=0
Jeśli EmployeeID
wynosi 7135, to zapytanie powinno zwrócić 007135
.
FORMAT
funkcję taką jak C # :-)
int
Wartości zajmują znacznie mniej miejsca niż te char(6)
i będzie ich wiele na wyprodukowaną część. Wydajność.
DATALENGTH()
) dwa bajty każdy. Ponieważ kolumna może znajdować się w indeksie, możesz zaoszczędzić więcej niż 2 MB. Po dodaniu innych kolumn te 2 bajty mogą wystarczyć, aby zmniejszyć długość wiersza na tyle, aby zapisać stronę 4KB na wiersz. Czy to będzie hostowane na platformie mobilnej, czy może skupiasz się na nieproduktywnym obszarze?
0
s są znaczące w tej dziedzinie, po coINT
w ogóle zmieniać ją na?