1. Desempenho:
Suponha que sua cláusula where seja assim:
WHERE NAME='JON'
Se a coluna NAME for de outro tipo que não nvarchar ou nchar, você não deverá especificar o prefixo N. No entanto, se a coluna NAME for do tipo nvarchar ou nchar, se você não especificar o prefixo N, 'JON' será tratado como não unicode. Isso significa que o tipo de dados da coluna NAME e a sequência 'JON' são diferentes e, portanto, o SQL Server converte implicitamente o tipo de um operando no outro. Se o SQL Server converter o tipo do literal no tipo da coluna, não haverá problema, mas se fizer o contrário, o desempenho será prejudicado porque o índice da coluna (se disponível) não será usado.
2. Conjunto de caracteres:
Se a coluna for do tipo nvarchar ou nchar, sempre use o prefixo N ao especificar a cadeia de caracteres na cláusula WHERE criterios / UPDATE / INSERT. Se você não fizer isso e um dos caracteres da sua string for unicode (como caracteres internacionais - exemplo - ā), ele falhará ou sofrerá corrupção de dados.
N
apenas quando estou usando os seguintes tipos de dadosCHAR, VARCHAR or TEXT
? porque `NCHAR, NVARCHAR ou NTEXT` são inerentemente UNICODE de armazenamento, não preciso adicioná-lo separadamente .... isso é verdade?