"NATIONAL" bedeutet in diesem Fall Zeichen, die für verschiedene Nationalitäten spezifisch sind. Besonders fernöstliche Sprachen haben so viele Zeichen, dass ein Byte nicht ausreicht, um sie alle zu unterscheiden. Wenn Sie also eine App nur für Englisch (ASCII) oder ein Feld nur für Englisch haben , können Sie mit den älteren Typen CHAR und VARCHAR davonkommen, die nur ein Byte pro Zeichen zulassen.
Allerdings sollten Sie meistens NCHAR/NVARCHAR verwenden. Auch wenn Sie nicht der Meinung sind, dass Sie mehrere Sprachen in Ihren Daten unterstützen (oder möglicherweise unterstützen) müssen, müssen selbst rein englischsprachige Apps in der Lage sein, Sicherheitsangriffe mit fremdsprachigen Zeichen vernünftig zu handhaben.
Meiner Meinung nach werden die älteren CHAR/VARCHAR-Typen nur noch für häufig referenzierte reine ASCII-interne Codes und Daten auf Plattformen wie SQL Server bevorzugt, die die Unterscheidung unterstützen – Daten, die einem enum
in einer Clientsprache wie C++ oder C#.