Wir haben eine alte SQL-Tabelle, die fast 10 Jahre lang von SQL Server 2000 verwendet wurde.
Darin werden unsere Mitarbeiterausweisnummern char(6)
von 000001
bis gespeichert 999999
.
Ich schreibe gerade eine Webanwendung und muss die Ausweisnummern der Mitarbeiter speichern.
In meiner neuen Tabelle könnte ich die Verknüpfung nehmen und die alte Tabelle kopieren, aber ich hoffe auf eine bessere Datenübertragung, kleinere Größe usw., indem ich einfach die int
Werte von 1
bis speichere 999999
.
In C # kann ich mit schnell einen int
Wert für die Ausweisnummer formatieren
public static string GetBadgeString(int badgeNum) {
return string.Format("{0:000000}", badgeNum);
// alternate
// return string.Format("{0:d6}", badgeNum);
}
Wie würde ich diese einfache SQL-Abfrage ändern, um auch den zurückgegebenen Wert zu formatieren?
SELECT EmployeeID
FROM dbo.RequestItems
WHERE ID=0
Wenn EmployeeID
7135 ist, sollte diese Abfrage zurückgegeben werden 007135
.
FORMAT
Funktion wie C # haben :-)
int
Werte nehmen deutlich weniger Platz ein char(6)
, und es werden mehrere dieser Einträge pro Teil hergestellt, das hergestellt wird. Effizienz.
DATALENGTH()
) jeweils zwei Bytes speichern können. Da sich die Spalte möglicherweise in einem Index befindet, können Sie mehr als 2 MB speichern. Und wenn andere Spalten addiert werden, reichen diese 2 Bytes möglicherweise gerade aus, um die Länge einer Zeile so weit zu reduzieren, dass eine 4-KB-Seite pro Zeile gespeichert wird. Wird dies auf einer mobilen Plattform gehostet oder konzentrieren Sie Ihre Aufmerksamkeit möglicherweise auf einen unproduktiven Bereich?
0
s für dieses Gebiet von Bedeutung sind, warum sollte man sie überhaupt in ein ändernINT
?