Prefixo N em T-SQL – SQL Server

Por que o prefixo N é utilizado nos parâmetros de funções nativas do SQL Server (sp_helptext N’sp_minhaproc’) e por que ela é utilizada no T-SQL?

A resposta para esta pergunta é bem simples. O motivo pela qual você deve utilizar sempre o prefixo N é porque os parâmetros em questão são do tipo nvarchar, nchar ou ntext. O nvarchar, nchar e o ntext são tipos de dados que utilizam um conjunto de caracteres UNICODE UCS-2. O conjuntos de caracteres UNICODE UCS-2 são utilizados quando há alguns idiomas que possuem caracteres especiais no alfabeto, como por exemplo: polônes, japonês, entre outros. Quando você utiliza o prefixo N’xyz’, significa que você está convertendo o parâmetro para UNICODE.

Veja o exemplo a seguir:

DECLARE @ncTeste1 nchar(1)
DECLARE @ncTeste2 nchar(1)

Set @ncTeste1 = 'ą'
Set @ncTeste2 = N'ą'-- Com a conversão para unicode

SELECT @ncTeste1 AS [Sem N], @ncTeste2 AS [Com N]

Veja o resultado do exemplo:

duvidas01

É altamente recomendável utilizar o N quando for utilizar alguma função nativa do SQL Server e também quando o campo em questão for do tipo nvarchar, nchar ou ntext, por mais que você não esteja utilizando algum caractere especial.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s