Un nvarchar
colonna può memorizzare qualsiasi dato Unicode. Un varchar
la colonna è limitata a una codepage a 8 bit. Alcune persone pensano che varchar
dovrebbe essere utilizzato perché occupa meno spazio. Credo che questa non sia la risposta corretta. Le incompatibilità con le codepage sono una seccatura e Unicode è la cura per i problemi di codepage. Con disco e memoria a basso costo al giorno d'oggi, non c'è più motivo di perdere tempo a smanettare con le codepage.
Tutti i moderni sistemi operativi e piattaforme di sviluppo utilizzano Unicode internamente. Usando nvarchar
anziché varchar
, puoi evitare di eseguire conversioni di codifica ogni volta che leggi o scrivi nel database. Le conversioni richiedono tempo e sono soggette a errori. E il recupero dagli errori di conversione è un problema non banale.
Se ti stai interfacciando con un'applicazione che utilizza solo ASCII, consiglierei comunque di utilizzare Unicode nel database. Gli algoritmi di confronto del sistema operativo e del database funzioneranno meglio con Unicode. Unicode evita problemi di conversione quando si interfaccia con altro sistemi. E ti preparerai per il futuro. E puoi sempre verificare che i tuoi dati siano limitati all'ASCII a 7 bit per qualsiasi sistema legacy che devi mantenere, anche godendo di alcuni dei vantaggi dell'archiviazione Unicode completa.