Artigo: 239530 - Última revisão: quinta-feira, 22 de Fevereiro de 2007 - Revisão: 6.3

Tem de preceder todas as cadeias Unicode com um prefixo N quando lidam com as constantes string Unicode no SQL Server

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Reduzir tudo

Sumário

Quando a lidar com as constantes string Unicode no SQL Server tem de preceder todas as cadeias Unicode com uma letra maiúscula N, de acordo com o tópico "Utilizar Unicode dados" SQL Server Books Online. O prefixo "N" significa idioma nacional no padrão SQL-92 e tem de ser em maiúsculas. Se não colocar como prefixo uma constante de cadeia Unicode com N, SQL Server irá convertê-la a página de código não-Unicode de base de dados actual antes de utilizar a cadeia.

Mais Informação

Esta notação é necessária fornecer retro-compatibilidade com aplicações existentes. Por exemplo, "SELECT 'Hello'" deve continuar a devolver uma cadeia não Unicode porque muitas aplicações irão esperar o comportamento do SQL Server 6.5, que não suporta dados Unicode; a nova sintaxe "SELECT N'Hello '" foi adicionada ao permitir a passagem de cadeias Unicode para e do SQL Server 7.0.

Sempre que passar dados Unicode para SQL Server tem prefixo o Unicode cadeia com N. Se a aplicação está activado em Unicode e envia dados para o SQL Server 7.0 como constantes de cadeia Unicode sem o prefixo N, poderá encontrar uma perda de dados de caracteres. Quando o SQL Server converte uma cadeia Unicode sem o N prefixo de Unicode para página de código da base de dados do SQL Server, todos os caracteres na cadeia de Unicode que não existem na página de código SQL Server serão perdidas. Note que esta conversão não está relacionada com conversão Autotranslation, Conversões OemToAnsi e AutoAnsiToOem, que ocorrem no cliente na camada de ODBC, OLEDB ou biblioteca de base de dados.

Se a aplicação não enviar dados Unicode para SQL Server e ANSI o cliente página de código corresponde da página de códigos do SQL Server, não é necessário para as constantes string com N de prefixo e não ocorrerá perda de dados como resultado de omissão o prefixo. No entanto, SQL Server 7.0 permite-lhe seleccionar uma collation Unicode durante a instalação é diferente da ordem de ordenação e, em alguns casos isto pode causar operações relacionadas com cadeias de prefixo N para ter resultados diferentes dos que não têm o prefixo. Por exemplo, suponha que, quando instalou o SQL Server 7.0, tiver seleccionado uma ordem de ordenação binária (ordenação são utilizadas ordens quando comparar cadeias Unicode não) e seleccionado geral Unicode como a collation de Unicode (Unicode collation é utilizado para comparar Unicode cadeias). A expressão de comparação de duas cadeias de não-Unicode ("ABC" = "abc") devolve FALSE uma vez que uma letra maiúscula "A" não é equivalente a uma minúscula "a", de acordo com a uma ordem de ordenação binária. Em contraste, a expressão (N'ABC '= N'abc') devolve VERDADEIRO. Uma vez que as cadeias são for antecedidas de um N, serão convertidos para Unicode e o agrupamento de Unicode será utilizado para as comparar. Ao contrário de ordenação binária, geral Unicode collation é sensível a maiúsculas e minúsculas e deve considerar as duas cadeias como equivalente.

Tenha em atenção que, se um dos dois operandos constante de cadeia é o prefixo um N e o outro não, a cadeia Unicode não será convertida para Unicode e o Unicode collation serão aplicadas quando compará-los. Este comportamento é explicado no SQL Server Books Online tópico "Operadores de comparação".

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
Palavras-chave: 
kbmt kbinfo KB239530 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 239530  (http://support.microsoft.com/kb/239530/en-us/ )