Wenn es Dir um die Datenbankgröße geht, dann nimm BigInt (feste Größe 4 Byte).
VarChar(n) benötigt einen Speicherplatz von (2 * n Byte) + 2 Byte.
Wenn es nicht um die
DB Größe geht ist das reine Geschmackssache.
Überhaupt in der
DB speichern? Ja klar. Immer rein damit.
Bei den Minigrößen ist es performanceseitig absolut egal ob BigInt oder VarChar. Auch das bisschen Rechnen in den Funktionen macht den
MSSQL garantiert nicht lahm.
Ich würde die Werte vermutlich nicht als BigInt speichern, wenn die
IP Adressen aus der Anwendung oft abgerufen und dargestellt werden müssen.
Du kannst meine
SQL Funktion IPStringToInt verwenden, um
IP Adressen lesbar per String Parameter zu übergeben und als BigInt zu speichern (oder Dir eine eigene, bessere UDF bauen).
PS:
Huch, falsch...
NVarChar(n) benötigt (2 * n Byte) + 2 Byte. Bei VarChar(n) ist es nur (n Byte) + 2 Byte.