Restrizione completamente inutile per quanto posso vedere. Assumendo lo standard FixedVar
format (al contrario dei formati usati con la compressione di riga/pagina o colonne sparse) e supponendo che tu stia parlando di varchar(1-8000)
colonne
Tutti varchar
i dati vengono archiviati alla fine della riga in una sezione di lunghezza variabile (o in pagine offrow se non possono rientrare nella riga). La quantità di spazio che consuma in quella sezione (e se finisce o meno fuori dalla riga) dipende interamente dalla lunghezza dei dati effettivi, non dalla dichiarazione della colonna.
SQL Server utilizzerà la lunghezza dichiarata nella dichiarazione della colonna durante l'allocazione della memoria (ad es. per sort
operazioni). Il presupposto che fa in quel caso è che varchar
le colonne verranno riempite fino a in media il 50% della loro dimensione dichiarata
quindi questa potrebbe essere una cosa migliore da considerare quando si sceglie una taglia.