Völlig sinnlose Einschränkung, wie ich sehe. Angenommen Standard-FixedVar
-Format (im Gegensatz zu den Formaten, die bei Zeilen-/Seitenkomprimierung oder Spalten mit geringer Dichte verwendet werden) und vorausgesetzt, Sie sprechen von varchar(1-8000)
Spalten
Alle varchar
Daten werden am Ende der Zeile in einem Abschnitt mit variabler Länge gespeichert (oder in Offrow-Seiten, wenn sie nicht in die Zeile passen). Die Menge an Platz, die es in diesem Abschnitt verbraucht (und ob es außerhalb der Zeile landet oder nicht), hängt vollständig von der Länge der tatsächlichen Daten ab, nicht von der Spaltendeklaration.
SQL Server verwendet die in der Spaltendeklaration deklarierte Länge, wenn Speicher zugewiesen wird (z. B. für sort
Operationen). Die Annahme, die es in diesem Fall macht, ist, dass varchar
Spalten werden aufgefüllt 50 % ihrer angegebenen Größe im Durchschnitt
Daher ist dies möglicherweise eine bessere Sache, wenn Sie eine Größe auswählen.