«НАЦИОНАЛЬНЫЙ» в данном случае означает символы, характерные для разных национальностей.В дальневосточных языках особенно много символов, поэтому одного байта недостаточно, чтобы различить их все.Так что если у вас есть приложение на английском (ascii) или поле только на английском , вы можете использовать старые типы CHAR и VARCHAR, которые допускают использование только одного байта на символ.
Тем не менее, большую часть времени вы должны использовать NCHAR / NVARCHAR.Даже если вы не думаете, что вам нужно поддерживать (или потенциально поддерживать) несколько языков в ваших данных, даже приложения, предназначенные только для английского языка, должны быть способны разумно обрабатывать атаки безопасности с использованием символов иностранных языков.
По моему мнению, единственное место, где старые типы CHAR / VARCHAR по-прежнему предпочтительнее, - это часто используемые внутренние коды ascii и данные на платформах, таких как Sql Server, которые поддерживают различие, - данные, которые будутэквивалент enum
на клиентском языке, таком как C ++ или C #.