1. Производительность:
Предположим, ваше предложение where выглядит следующим образом:
WHERE NAME='JON'
Если столбец NAME имеет любой тип, отличный от nvarchar или nchar, вам не следует указывать префикс N. Однако, если столбец NAME имеет тип nvarchar или nchar, то, если вы не укажете префикс N, то JON будет считаться не-юникодом. Это означает, что тип данных столбца NAME и строки «JON» различаются, и поэтому SQL Server неявно преобразует один тип операнда в другой. Если SQL Server преобразует тип литерала в тип столбца, проблем не возникает, но если это происходит иначе, производительность будет снижена, поскольку индекс столбца (если он доступен) не будет использоваться.
2. Набор символов:
Если столбец имеет тип nvarchar или nchar, всегда используйте префикс N при указании символьной строки в условии WHERE критериев / UPDATE / INSERT. Если вы этого не сделаете, и один из символов в вашей строке будет Unicode (например, международные символы - пример - А), то он потерпит неудачу или будет поврежден.
N
только тогда, когда я использую следующие типы данныхCHAR, VARCHAR or TEXT
?? поскольку `NCHAR, NVARCHAR или NTEXT` по своей природе хранят UNICODE, мне не требуется добавлять его отдельно ... правда ли это?