Helt meningslös begränsning så vitt jag kan se. Förutsatt standard FixedVar
format (till skillnad från formaten som används med rad-/sida-komprimering eller glesa kolumner) och förutsatt att du talar om varchar(1-8000)
kolumner
Alla varchar
data lagras i slutet av raden i en sektion med variabel längd (eller på offrow-sidor om den inte får plats i raden). Mängden utrymme den förbrukar i det avsnittet (och om det hamnar utanför raden eller inte) är helt beroende av längden på den faktiska datan, inte kolumndeklarationen.
SQL Server kommer att använda längden som deklareras i kolumndeklarationen vid allokering av minne (t.ex. för sort
operationer). Antagandet det gör i det fallet är att varchar
kolumner kommer att fyllas till 50 % av deras deklarerade storlek i genomsnitt
så det här kan vara en bättre sak att titta på när du väljer en storlek.