sql >> Database >  >> RDS >> Sqlserver

Wat is het verschil tussen varchar en nvarchar?

Een nvarchar kolom kan alle Unicode-gegevens opslaan. Een varchar kolom is beperkt tot een 8-bits codetabel. Sommige mensen denken dat varchar moet worden gebruikt omdat het minder ruimte in beslag neemt. Ik geloof dat dit niet het juiste antwoord is. Incompatibiliteiten met codepagina's zijn vervelend en Unicode is de remedie voor problemen met codepagina's. Met tegenwoordig goedkope schijf en geheugen, is er echt geen reden meer om tijd te verspillen aan het rommelen met codepagina's.

Alle moderne besturingssystemen en ontwikkelplatforms gebruiken intern Unicode. Door nvarchar . te gebruiken in plaats van varchar , kunt u voorkomen dat u elke keer dat u leest van of schrijft naar de database coderingsconversies uitvoert. Conversies kosten tijd en zijn vatbaar voor fouten. En herstel van conversiefouten is een niet-triviaal probleem.

Als je een applicatie gebruikt die alleen ASCII gebruikt, raad ik je toch aan om Unicode in de database te gebruiken. De sorteeralgoritmen van het besturingssysteem en de database werken beter met Unicode. Unicode vermijdt conversieproblemen bij interfaces met other systemen. En je bereidt je voor op de toekomst. En u kunt altijd valideren dat uw gegevens beperkt zijn tot 7-bits ASCII voor elk verouderd systeem dat u moet onderhouden, zelfs terwijl u profiteert van enkele voordelen van volledige Unicode-opslag.



  1. Cloud Disaster Recovery voor MariaDB en MySQL

  2. MySQL - Krijg rijnummer bij selecteren

  3. 4 manieren om erachter te komen welke kolommen worden geretourneerd door een opgeslagen procedure in SQL Server

  4. django.db.utils.OperationalError Kon geen verbinding maken met de server