Molti dei miei database hanno campi definiti come varchars. Questo non è stato un grosso problema da quando vivo e lavoro in America (dove l'unica lingua che esiste è "americana". Ahem )
Dopo aver lavorato con i database per circa 5 anni, ho scoperto che alla fine ho riscontrato problemi con la natura limitata del campo varchar e devo modificare i miei campi per archiviare i dati come nvarchars. Dopo aver dovuto effettuare un altro aggiornamento in una tabella, convertendo un campo varchar in un nvarchar, ho pensato: perché lo stiamo ancora facendo in questo modo? Da tempo ho preso la decisione mentale di definire tutti i miei nuovi campi di testo in nvarchar, anziché varchar, che è ciò che ho imparato a fare dai miei libri di testo quando ero a scuola 10 anni fa.
È il 2011 e l'anno scorso è stata rilasciata una nuova versione di SQL Server. Perché continuiamo a supportare un tipo di dati varchar quando possiamo / dovremmo invece utilizzare nvarchar?
So che si sostiene spesso che i nvarchar sono "due volte più grandi" dei varchar, quindi l'utilizzo dello spazio di archiviazione potrebbe essere un argomento per mantenere i varcar.
Tuttavia, gli utenti di oggi potrebbero definire i loro nvarchars per archiviare i dati come UTF-8 anziché come UTF-16 predefinito se vogliono risparmiare spazio di archiviazione. Ciò consentirebbe la codifica a 8 bit se ciò è principalmente desiderabile, garantendo al contempo che il raro carattere da 2-8 byte che viene inserito nel loro DB non romperà nulla.
Mi sto perdendo qualcosa? C'è una buona ragione per cui questo non è cambiato negli ultimi 15-20 anni?