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 000001do 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 intwartości od 1do 999999.
W C # mogę szybko sformatować intwartość 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 EmployeeIDwynosi 7135, to zapytanie powinno zwrócić 007135.
FORMATfunkcję taką jak C # :-)
intWartoś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?
0s są znaczące w tej dziedzinie, po coINTw ogóle zmieniać ją na?