nvarchar
kolumna może przechowywać dowolne dane Unicode. varchar
kolumna jest ograniczona do 8-bitowej strony kodowej. Niektórzy uważają, że varchar
powinien być używany, ponieważ zajmuje mniej miejsca. Uważam, że to nie jest prawidłowa odpowiedź. Niezgodności strony kodowej są uciążliwe, a Unicode jest lekarstwem na problemy ze stroną kodową. Przy tanim dysku i pamięci w dzisiejszych czasach naprawdę nie ma już powodu, aby tracić czas na grzebanie w stronach kodowych.
Wszystkie nowoczesne systemy operacyjne i platformy programistyczne używają wewnętrznie Unicode. Używając nvarchar
zamiast varchar
, możesz uniknąć wykonywania konwersji kodowania za każdym razem, gdy czytasz lub zapisujesz w bazie danych. Konwersje wymagają czasu i są podatne na błędy. A odzyskiwanie po błędach konwersji to nietrywialny problem.
Jeśli łączysz się z aplikacją, która używa tylko ASCII, nadal polecam używanie Unicode w bazie danych. Algorytmy sortowania systemu operacyjnego i bazy danych będą działać lepiej z Unicode. Unicode pozwala uniknąć problemów z konwersją podczas łączenia się z innymi systemy. I będziesz przygotowywać się na przyszłość. Zawsze możesz sprawdzić, czy Twoje dane są ograniczone do 7-bitowego kodu ASCII dla dowolnego starszego systemu, który musisz utrzymywać, nawet korzystając z niektórych zalet pełnego przechowywania Unicode.