Suporte a ordenações e UnicodeCollation and Unicode support

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure simAzure Synapse Analytics (SQL DW) simParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

As ordenações em SQL ServerSQL Server fornecem propriedades de regras de classificação, de diferenciação de maiúsculas e minúsculas e de diferenciação de acentos para seus dados.Collations in SQL ServerSQL Server provide sorting rules, case, and accent sensitivity properties for your data. As ordenações usadas com tipos de dados de caractere, como char e varchar, determinam a página de código e os caracteres correspondentes que podem ser representados para esse tipo de dados.Collations that are used with character data types, such as char and varchar, dictate the code page and corresponding characters that can be represented for that data type.

Independentemente de você estar instalando uma nova instância do SQL ServerSQL Server, restaurando um backup de banco de dados ou conectando o servidor a bancos de dados cliente, é importante estar ciente dos requisitos de localidade, da ordem de classificação e da diferenciação de maiúsculas e minúsculas e de acentos dos dados com os quais você está trabalhando.Whether you're installing a new instance of SQL ServerSQL Server, restoring a database backup, or connecting server to client databases, it's important to understand the locale requirements, sorting order, and case and accent sensitivity of the data that you're working with. Para listar as ordenações disponíveis na instância do SQL ServerSQL Server, confira sys.fn_helpcollations (Transact-SQL).To list the collations that are available on your instance of SQL ServerSQL Server, see sys.fn_helpcollations (Transact-SQL).

Ao selecionar uma ordenação para o servidor, o banco de dados, a coluna ou a expressão, você atribui determinadas características aos dados.When you select a collation for your server, database, column, or expression, you're assigning certain characteristics to your data. Essas características afetam os resultados de muitas operações no banco de dados.These characteristics affect the results of many operations in the database. Por exemplo, ao construir uma consulta usando ORDER BY, a ordem de classificação do conjunto de resultados poderá depender da ordenação aplicada ao banco de dados ou determinada em uma cláusula COLLATE no nível de expressão da consulta.For example, when you construct a query by using ORDER BY, the sort order of your result set might depend on the collation that's applied to the database or dictated in a COLLATE clause at the expression level of the query.

Para usar o suporte a ordenações do SQL ServerSQL Server da melhor maneira possível, você deve estar ciente dos termos definidos neste tópico e de como eles estão relacionados às características dos dados.To best use collation support in SQL ServerSQL Server, you should understand the terms that are defined in this topic and how they relate to the characteristics of your data.

Termos de ordenaçãoCollation terms

OrdenaçãoCollation

Uma ordenação especifica os padrões de bit que representam cada caractere em um conjunto de dados.A collation specifies the bit patterns that represent each character in a dataset. As ordenações também determinam as regras que classificam e comparam dados.Collations also determine the rules that sort and compare data. SQL ServerSQL Server dá suporte ao armazenamento de objetos com ordenações diferentes em um banco de dados individual.supports storing objects that have different collations in a single database. Para colunas não Unicode, a configuração de ordenação especifica a página de códigos dos dados e quais caracteres podem ser representados.For non-Unicode columns, the collation setting specifies the code page for the data and which characters can be represented. Os dados movidos entre colunas não Unicode precisam ser convertidos da página de código de origem para a página de código de destino.The data that you move between non-Unicode columns must be converted from the source code page to the destination code page.

Os resultados da instrução Transact-SQLTransact-SQL podem variar quando a instrução for executada no contexto de diferentes bancos de dados que tenham configurações de ordenação diferentes.Transact-SQLTransact-SQL statement results can vary when the statement is run in the context of different databases that have different collation settings. Se possível, use uma ordenação padronizada para sua organização.If possible, use a standardized collation for your organization. Desse modo, não será preciso especificar a ordenação em cada caractere ou expressão Unicode.This way, you don't have to specify the collation in every character or Unicode expression. Se você deve trabalhar com objetos que tenham configurações de ordenação e página de códigos diferentes, codifique suas consultas para considerar as regras da precedência de ordenação.If you must work with objects that have different collation and code page settings, code your queries to consider the rules of collation precedence. Para obter mais informações, consulte Precedência de ordenação (Transact-SQL).For more information, see Collation Precedence (Transact-SQL).

As opções associadas a uma ordenação são diferenciação de maiúsculas e minúsculas, de acentos, de caracteres Kana, de largura e de seletor de variação.The options associated with a collation are case sensitivity, accent sensitivity, kana sensitivity, width sensitivity, and variation-selector sensitivity. O SQL Server 2019 (15.x)SQL Server 2019 (15.x) introduz uma opção adicional para codificação UTF-8.SQL Server 2019 (15.x)SQL Server 2019 (15.x) introduces an additional option for UTF-8 encoding.

Especifique essas opções acrescentando-as ao nome da ordenação.You can specify these options by appending them to the collation name. Por exemplo, a ordenação Japanese_Bushu_Kakusu_100_CS_AS_KS_WS_UTF8 diferencia maiúsculas de minúsculas, acentos, caracteres Kana, a largura e é codificado em UTF-8.For example, the collation Japanese_Bushu_Kakusu_100_CS_AS_KS_WS_UTF8 is case-sensitive, accent-sensitive, kana-sensitive, width-sensitive, and UTF-8 encoded. Como outro exemplo, a ordenação Japanese_Bushu_Kakusu_140_CI_AI_KS_WS_VSS não diferencia maiúsculas de minúsculas, não diferencia acentos, mas diferencia caracteres Kana, a largura e o seletor de variação, além de usar a codificação não Unicode.As another example, the collation Japanese_Bushu_Kakusu_140_CI_AI_KS_WS_VSS is case-insensitive, accent-insensitive, kana-sensitive, width-sensitive, variation-selector-sensitive, and it uses non-Unicode encoding.

O comportamento associado a essas várias opções é descrito na seguinte tabela:The behavior associated with these various options is described in the following table:

OpçãoOption DescriçãoDescription
Diferenciar maiúsculas de minúsculas (_CS)Case-sensitive (_CS) Faz distinção entre letras maiúscula e minúsculas.Distinguishes between uppercase and lowercase letters. Se essa opção for selecionada, as letras minúsculas serão classificadas à frente das versões em letras maiúsculas.If this option is selected, lowercase letters sort ahead of their uppercase versions. Se essa opção não for selecionada, a ordenação não diferenciará maiúsculas de minúsculas.If this option isn't selected, the collation is case-insensitive. Ou seja, o SQL ServerSQL Server considera as versões de letras maiúsculas e minúsculas como idênticas para fins de classificação.That is, SQL ServerSQL Server considers the uppercase and lowercase versions of letters to be identical for sorting purposes. Você pode selecionar explicitamente a não diferenciação de maiúsculas e minúsculas, especificando _CI.You can explicitly select case insensitivity by specifying _CI.
Diferenciar acentos (_AS)Accent-sensitive (_AS) Faz distinção entre caracteres acentuados e não acentuados.Distinguishes between accented and unaccented characters. Por exemplo, "a" não é igual a "ấ".For example, "a" is not equal to "ấ". Se essa opção não for selecionada, a ordenação não diferenciará acentos.If this option isn't selected, the collation is accent-insensitive. Ou seja, o SQL ServerSQL Server considera as versões com e sem acentos como idênticas para fins de classificação.That is, SQL ServerSQL Server considers the accented and unaccented versions of letters to be identical for sorting purposes. Você pode selecionar explicitamente a não diferenciação de acentos, especificando _AI.You can explicitly select accent insensitivity by specifying _AI.
Diferenciar caracteres Kana (_KS)Kana-sensitive (_KS) Distingue entre os dois tipos de caracteres kana japoneses: hiragana e katakana.Distinguishes between the two types of Japanese kana characters: Hiragana and Katakana. Se essa opção não for selecionada, a ordenação não diferenciará caracteres Kana.If this option isn't selected, the collation is kana-insensitive. Ou seja, o SQL ServerSQL Server considera que caracteres hiragana e katakana são iguais para fins de classificação.That is, SQL ServerSQL Server considers Hiragana and Katakana characters to be equal for sorting purposes. A omissão dessa opção é o único método de especificar a não diferenciação de caracteres Kana.Omitting this option is the only method of specifying kana-insensitivity.
Diferenciar largura (_WS)Width-sensitive (_WS) Faz distinção entre caracteres de largura inteira e de meia largura.Distinguishes between full-width and half-width characters. Se essa opção não for selecionada, o SQL ServerSQL Server considerará as representações de largura inteira e de meia largura do mesmo caractere como idênticas para fins de classificação.If this option isn't selected, SQL ServerSQL Server considers the full-width and half-width representation of the same character to be identical for sorting purposes. A omissão desta opção é o único método de especificar a não diferenciação de largura.Omitting this option is the only method of specifying width-insensitivity.
Distinção de seletor de variação (_VSS)Variation-selector-sensitive (_VSS) Distingue entre vários seletores de variação de ideograma nas ordenações de japonês Japanese_Bushu_Kakusu_140 e Japanese_XJIS_140, introduzidas no SQL Server 2017 (14.x)SQL Server 2017 (14.x).Distinguishes between various ideographic variation selectors in the Japanese collations Japanese_Bushu_Kakusu_140 and Japanese_XJIS_140, which are introduced in SQL Server 2017 (14.x)SQL Server 2017 (14.x). Uma sequência de variação consiste em um caractere base e um seletor de variação adicional.A variation sequence consists of a base character plus an additional variation selector. Se essa opção _VSS não for selecionada, a ordenação não diferenciará o seletor de variação e o seletor de variação não será considerado na comparação.If this _VSS option isn't selected, the collation is variation-selector-insensitive, and the variation selector isn't considered in the comparison. Ou seja, o SQL ServerSQL Server considera caracteres que seguem o mesmo caractere base com seletores de variação distintos como sendo idênticos para fins de classificação.That is, SQL ServerSQL Server considers characters built upon the same base character with differing variation selectors to be identical for sorting purposes. Para obter mais informações, confira Banco de dados de variação de ideograma Unicode.For more information, see Unicode Ideographic Variation Database.

Não há suporte para ordenações _VSS (diferenciação do seletor de variação) em índices de pesquisa de texto completo.Variation-selector-sensitive (_VSS) collations aren't supported in full-text search indexes. Índices de pesquisa de texto completo dão suporte apenas às opções Diferenciação de Acentos (_AS), Diferenciação de caracteres Kana (_KS) e Diferenciação de largura (_WS).Full-text search indexes support only Accent-Sensitive (_AS), Kana-sensitive (_KS), and Width-sensitive (_WS) options. Os mecanismos de XML e CLR do SQL ServerSQL Server não dão suporte a seletores de variação (_VSS).SQL ServerSQL Server XML and CLR engines don't support (_VSS) Variation selectors.
Binário (_BIN)1Binary (_BIN)1 Classifica e compara dados em tabelas do SQL ServerSQL Server com base nos padrões de bit definidos para cada caractere.Sorts and compares data in SQL ServerSQL Server tables based on the bit patterns defined for each character. A ordem de classificação binária faz distinção entre maiúsculas e minúsculas e acentuação.Binary sort order is case-sensitive and accent-sensitive. Binário é também a ordem de classificação mais rápida.Binary is also the fastest sorting order. Para obter mais informações, confira a seção Ordenações primárias neste artigo.For more information, see the Binary collations section in this article.
Ponto de código binário (_BIN2)1Binary-code point (_BIN2)1 Classifica e compara dados em tabelas do SQL ServerSQL Server com base em pontos de código Unicode para dados Unicode.Sorts and compares data in SQL ServerSQL Server tables based on Unicode code points for Unicode data. Para dados não Unicode, o ponto de código binário usa comparações que são idênticas àquelas das classificações binárias.For non-Unicode data, Binary-code point uses comparisons that are identical to those for binary sorts.

A vantagem de usar uma ordem de classificação ponto de código binário é que nenhuma reclassificação de dados será necessária em aplicativos que comparam dados classificados do SQL ServerSQL Server.The advantage of using a Binary-code point sort order is that no data resorting is required in applications that compare sorted SQL ServerSQL Server data. Como resultado, uma ordem de classificação de ponto de código binário fornece desenvolvimento de aplicativos mais simples e possíveis aumentos de desempenho.As a result, a Binary-code point sort order provides simpler application development and possible performance increases. Para obter mais informações, confira a seção Ordenações primárias neste artigo.For more information, see the Binary collations section in this article.
UTF-8 (_UTF8)UTF-8 (_UTF8) Permite que dados codificados em UTF-8 sejam armazenados no SQL ServerSQL Server.Enables UTF-8 encoded data to be stored in SQL ServerSQL Server. Se essa opção não for selecionada, o SQL ServerSQL Server usará o formato de codificação não Unicode padrão para os tipos de dados aplicáveis.If this option isn't selected, SQL ServerSQL Server uses the default non-Unicode encoding format for the applicable data types. Para obter mais informações, confira a seção Suporte a UTF-8 neste artigo.For more information, see the UTF-8 Support section in this article.

1 Se a opção Binário ou Ponto de código binário foi selecionada, as opções Diferenciar maiúsculas de minúsculas (_CS), Distinguir acentos (_AS), Distinguir caracteres Kana (_KS) e Distinguir largura (_WS) não estarão disponíveis.1 If Binary or Binary-code point is selected, the Case-sensitive (_CS), Accent-sensitive (_AS), Kana-sensitive (_KS), and Width-sensitive (_WS) options are not available.

Exemplos de opções de ordenaçãoExamples of collation options

Cada ordenação é combinada como uma série de sufixos para definir a diferenciação de maiúsculas e minúsculas, de acentos, da largura ou de caracteres Kana.Each collation is combined as a series of suffixes to define case-, accent-, width-, or kana-sensitivity. Os exemplos a seguir descrevem o comportamento da ordem de classificação para várias combinações de sufixos.The following examples describe sort order behavior for various combinations of suffixes.

Sufixo de ordenação do WindowsWindows collation suffix Descrição da ordem de classificaçãoSort order description
_BIN1_BIN1 Classificação bináriaBinary sort
_BIN21, 2_BIN21, 2 Ordem de classificação do ponto de código binárioBinary-code point sort order
_CI_AI2_CI_AI2 Não diferencia maiúsculas de minúsculas, acentos, caracteres Kana e a larguraCase-insensitive, accent-insensitive, kana-insensitive, width-insensitive
_CI_AI_KS2_CI_AI_KS2 Não distingue maiúsculas e minúsculas, não distingue acentuação, distingue caracteres kana, não distingue larguraCase-insensitive, accent-insensitive, kana-sensitive, width-insensitive
_CI_AI_KS_WS2_CI_AI_KS_WS2 Não distingue maiúsculas e minúsculas, não distingue acentuação, distingue caracteres kana, distingue larguraCase-insensitive, accent-insensitive, kana-sensitive, width-sensitive
_CI_AI_WS2_CI_AI_WS2 Não distingue maiúsculas e minúsculas, não distingue acentuação, não distingue caracteres kana, distingue larguraCase-insensitive, accent-insensitive, kana-insensitive, width-sensitive
_CI_AS2_CI_AS2 Não distingue maiúsculas e minúsculas, distingue acentuação, não distingue caracteres kana, não distingue larguraCase-insensitive, accent-sensitive, kana-insensitive, width-insensitive
_CI_AS_KS2_CI_AS_KS2 Não distingue maiúsculas e minúsculas, distingue acentuação, distingue caracteres kana, não distingue larguraCase-insensitive, accent-sensitive, kana-sensitive, width-insensitive
_CI_AS_KS_WS2_CI_AS_KS_WS2 Não distingue maiúsculas e minúsculas, distingue acentuação, distingue caracteres kana, distingue larguraCase-insensitive, accent-sensitive, kana-sensitive, width-sensitive
_CI_AS_WS2_CI_AS_WS2 Não distingue maiúsculas e minúsculas, distingue acentuação, não distingue caracteres kana, distingue larguraCase-insensitive, accent-sensitive, kana-insensitive, width-sensitive
_CS_AI2_CS_AI2 Distingue maiúsculas e minúsculas, não distingue acentuação, não distingue caracteres kana, não distingue larguraCase-sensitive, accent-insensitive, kana-insensitive, width-insensitive
_CS_AI_KS2_CS_AI_KS2 Distingue maiúsculas e minúsculas, não distingue acentuação, distingue caracteres kana, não distingue larguraCase-sensitive, accent-insensitive, kana-sensitive, width-insensitive
_CS_AI_KS_WS2_CS_AI_KS_WS2 Distingue maiúsculas e minúsculas, não distingue acentuação, distingue caracteres kana, distingue larguraCase-sensitive, accent-insensitive, kana-sensitive, width-sensitive
_CS_AI_WS2_CS_AI_WS2 Distingue maiúsculas e minúsculas, não distingue acentuação, não distingue caracteres kana, distingue larguraCase-sensitive, accent-insensitive, kana-insensitive, width-sensitive
_CS_AS2_CS_AS2 Distingue maiúsculas e minúsculas, distingue acentuação, não distingue caracteres kana, não distingue larguraCase-sensitive, accent-sensitive, kana-insensitive, width-insensitive
_CS_AS_KS2_CS_AS_KS2 Distingue maiúsculas e minúsculas, distingue acentuação, distingue caracteres kana, não distingue larguraCase-sensitive, accent-sensitive, kana-sensitive, width-insensitive
_CS_AS_KS_WS2_CS_AS_KS_WS2 Distingue maiúsculas e minúsculas, distingue acentuação, distingue caracteres kana, distingue larguraCase-sensitive, accent-sensitive, kana-sensitive, width-sensitive
_CS_AS_WS2_CS_AS_WS2 Distingue maiúsculas e minúsculas, distingue acentuação, não distingue caracteres kana, distingue larguraCase-sensitive, accent-sensitive, kana-insensitive, width-sensitive

1 Se Binário ou Ponto de código binário for selecionado, as opções Diferencia maiúsculas de minúsculas (_CS), Diferencia acentos (_AS), Diferencia caracteres Kana (_KS) e Diferencia a largura (_WS) não estarão disponíveis.1 If Binary or Binary-code point is selected, the Case-sensitive (_CS), Accent-sensitive (_AS), Kana-sensitive (_KS), and Width-sensitive (_WS) options aren't available.

2 A adição da opção UTF-8 (_UTF8) permite que você codifique dados Unicode usando UTF-8.2 Adding the UTF-8 option (_UTF8) enables you to encode Unicode data by using UTF-8. Para obter mais informações, confira a seção Suporte a UTF-8 neste artigo.For more information, see the UTF-8 Support section in this article.

Conjuntos de ordenaçõesCollation sets

O SQL ServerSQL Server oferece suporte aos seguintes conjuntos de ordenação:SQL ServerSQL Server supports the following collation sets:

Ordenações do WindowsWindows collations

As ordenações do Windows definem regras para o armazenamento de dados de caractere baseados em uma localidade associada do sistema do Windows.Windows collations define rules for storing character data that's based on an associated Windows system locale. No caso de uma ordenação do Windows, você pode implementar uma comparação de dados não Unicode usando o mesmo algoritmo dos dados Unicode.For a Windows collation, you can implement a comparison of non-Unicode data by using the same algorithm as that for Unicode data. As regras de base da ordenação do Windows especificam qual alfabeto ou idioma é usado quando a classificação do dicionário é aplicada.The base Windows collation rules specify which alphabet or language is used when dictionary sorting is applied. As regras também especificam a página de código usada para armazenar dados de caractere não Unicode.The rules also specify the code page that's used to store non-Unicode character data. As classificações Unicode e não Unicode são compatíveis com comparações de cadeias de caracteres em uma versão específica do Windows.Both Unicode and non-Unicode sorting are compatible with string comparisons in a particular version of Windows. Isso proporciona consistência entre os tipos de dados no SQL ServerSQL Server e permite que os desenvolvedores classifiquem as cadeias de caracteres nos aplicativos usando as mesmas regras utilizadas pelo SQL ServerSQL Server.This provides consistency across data types within SQL ServerSQL Server, and it lets developers sort strings in their applications by using the same rules that are used by SQL ServerSQL Server. Para obter mais informações, confira Nome de ordenação do Windows (Transact-SQL).For more information, see Windows Collation Name (Transact-SQL).

Ordenações primáriasBinary collations

Os dados classificados de ordenações primárias na sequência de valores codificados definidos pelo tipo de localidade e dados.Binary collations sort data based on the sequence of coded values that are defined by the locale and data type. Eles diferenciam maiúsculas de minúsculas.They're case-sensitive. Uma ordenação primária no SQL ServerSQL Server define a localidade e a página de código ANSI que são usadas.A binary collation in SQL ServerSQL Server defines the locale and the ANSI code page that's used. Isso impõe uma ordem de classificação binária.This enforces a binary sort order. Como são relativamente simples, as ordenações primárias ajudam melhorar o desempenho do aplicativo.Because they're relatively simple, binary collations help improve application performance. Para tipos de dados não Unicode, as comparações de dados têm como base os pontos de código definidos na página de código ANSI.For non-Unicode data types, data comparisons are based on the code points that are defined on the ANSI code page. Para tipos de dados Unicode, as comparações de dados têm como base os pontos de código Unicode.For Unicode data types, data comparisons are based on the Unicode code points. Para ordenações primárias em tipos de dados Unicode, a localidade não é considerada nas classificações de dados.For binary collations on Unicode data types, the locale isn't considered in data sorts. Por exemplo, Latin_1_General_BIN e Japanese_BIN geram resultados de classificação idênticos quando usados em dados Unicode.For example, Latin_1_General_BIN and Japanese_BIN yield identical sorting results when they're used on Unicode data. Para obter mais informações, confira Nome de ordenação do Windows (Transact-SQL).For more information, see Windows Collation Name (Transact-SQL).

Há dois tipos de agrupamentos binários no SQL ServerSQL Server:There are two types of binary collations in SQL ServerSQL Server:

  • As ordenações BIN herdadas, que executavam uma comparação de ponto de código para ponto de código incompleta para dados Unicode.The legacy BIN collations, which performed an incomplete code-point-to-code-point comparison for Unicode data. Essas ordenações primárias herdadas comparavam o primeiro caractere como WCHAR, seguido por uma comparação byte por byte.These legacy binary collations compared the first character as WCHAR, followed by a byte-by-byte comparison. Em uma ordenação BIN, apenas o primeiro caractere é classificado de acordo com o ponto de código e os caracteres restantes são classificados de acordo com os respectivos valores de bytes.In a BIN collation, only the first character is sorted according to the code point, and remaining characters are sorted according to their byte values.

  • As ordenações BIN2 mais recentes, que implementam uma comparação de ponto de código puro.The newer BIN2 collations, which implement a pure code-point comparison. Em uma ordenação BIN2, todos os caracteres são classificados de acordo com os respectivos pontos de código.In a BIN2 collation, all characters are sorted according to their code points. Já que a plataforma Intel é um arquitetura little endian, os caracteres de código Unicode são sempre trocados por bytes armazenados.Because the Intel platform is a little endian architecture, Unicode code characters are always stored byte-swapped.

Ordenações do SQL ServerSQL Server collations

As ordenações (SQL_*) do SQL ServerSQL Server oferecem compatibilidade de ordem de classificação com versões anteriores do SQL ServerSQL Server.SQL ServerSQL Server collations (SQL_*) provide sort order compatibility with earlier versions of SQL ServerSQL Server. As regras de classificação do dicionário para dados não Unicode são incompatíveis com as rotinas de classificação fornecidas pelos sistemas operacionais Windows.The dictionary sorting rules for non-Unicode data are incompatible with any sorting routine that's provided by Windows operating systems. No entanto, a classificação de dados Unicode é compatível com uma versão específica das regras de classificação do Windows.However, sorting Unicode data is compatible with a particular version of Windows sorting rules. Como as ordenações do SQL ServerSQL Server usam regras de comparação diferentes para dados não Unicode e Unicode, você vê resultados diferentes para comparações dos mesmos dados, dependendo do tipo de dados subjacente.Because SQL ServerSQL Server collations use different comparison rules for non-Unicode and Unicode data, you see different results for comparisons of the same data, depending on the underlying data type. Para obter mais informações, confira Nome de ordenação do SQL Server (Transact-SQL).For more information, see SQL Server Collation Name (Transact-SQL).

Durante a instalação de SQL ServerSQL Server, a instalação de ordenação padrão é determinada pela localidade do SO (sistema operacional).During SQL ServerSQL Server setup, the default installation collation setting is determined by the operating system (OS) locale. Você pode alterar a ordenação no nível de servidor durante a instalação ou por meio da alteração da localidade do sistema operacional antes da instalação.You can change the server-level collation either during setup or by changing the OS locale before installation. Por motivos de compatibilidade com versões anteriores, a ordenação padrão é definida como a versão disponível mais antiga associada a cada localidade específica.For backward compatibility reasons, the default collation is set to the oldest available version that's associated with each specific locale. Portanto, essa nem sempre é a ordenação recomendada.Therefore, this isn't always the recommended collation. Para aproveitar ao máximo os recursos do SQL ServerSQL Server, altere as configurações de instalação padrão para usar ordenações do Windows.To take full advantage of SQL ServerSQL Server features, change the default installation settings to use Windows collations. Por exemplo, para a localidade do sistema operacional "Inglês (Estados Unidos)" (página de código 1252), a ordenação padrão durante a instalação é SQL_Latin1_General_CP1_CI_AS, que pode ser alterada para a ordenação equivalente do Windows mais próxima, Latin1_General_100_CI_AS_SC.For example, for the OS locale "English (United States)" (code page 1252), the default collation during setup is SQL_Latin1_General_CP1_CI_AS, and it can be changed to its closest Windows collation counterpart, Latin1_General_100_CI_AS_SC.

Observação

Ao atualizar uma instância em inglês do SQL ServerSQL Server, você pode especificar ordenações do SQL ServerSQL Server (SQL_*) para compatibilidade com as instâncias existentes do SQL ServerSQL Server.When you upgrade an English-language instance of SQL ServerSQL Server, you can specify SQL ServerSQL Server collations (SQL_*) for compatibility with existing instances of SQL ServerSQL Server. Como a ordenação padrão de uma instância do SQL ServerSQL Server é definida durante a instalação, lembre-se de especificar as configurações de ordenação com cuidado quando as seguintes condições forem verdadeiras:Because the default collation for an instance of SQL ServerSQL Server is defined during setup, make sure that you specify the collation settings carefully when the following conditions are true:

  • Seu código de aplicativo depende do comportamento de ordenações anteriores do SQL ServerSQL Server.Your application code depends on the behavior of previous SQL ServerSQL Server collations.
  • Você deve armazenar dados de caractere que refletem vários idiomas.You must store character data that reflects multiple languages.

Níveis de ordenaçãoCollation levels

Há suporte para configurar ordenações nos seguintes níveis de uma instância do SQL ServerSQL Server:Setting collations are supported at the following levels of an instance of SQL ServerSQL Server:

Ordenações no nível do servidorServer-level collations

A ordenação do servidor padrão é determinada durante a instalação do SQL ServerSQL Server e se torna a ordenação padrão dos bancos de dados do sistema e de todos os bancos de dados de usuário.The default server collation is determined during SQL ServerSQL Server setup, and it becomes the default collation of the system databases and all user databases.

A seguinte tabela mostra as designações de ordenação padrão conforme determinado pela localidade do sistema operacional, incluindo os respectivos LCIDs (identificadores de código de idioma) do Windows e do SQL:The following table shows the default collation designations, as determined by the operating system (OS) locale, including their Windows and SQL Language Code Identifiers (LCID):

Localidade do WindowsWindows locale LCID do WindowsWindows LCID LCID do SQLSQL LCID Ordenação padrãoDefault collation
Africâner (África do Sul)Afrikaans (South Africa) 0x04360x0436 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Albanês (Albânia)Albanian (Albania) 0x041c0x041c 0x041c0x041c Albanian_CI_ASAlbanian_CI_AS
Alsaciano (França)Alsatian (France) 0x04840x0484 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Amárico (Etiópia)Amharic (Ethiopia) 0x045e0x045e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Árabe (Argélia)Arabic (Algeria) 0x14010x1401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Bahrein)Arabic (Bahrain) 0x3c010x3c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Egito)Arabic (Egypt) 0x0c010x0c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Iraque)Arabic (Iraq) 0x08010x0801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Jordânia)Arabic (Jordan) 0x2c010x2c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Kuwait)Arabic (Kuwait) 0x34010x3401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Líbano)Arabic (Lebanon) 0x30010x3001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Líbia)Arabic (Libya) 0x10010x1001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Marrocos)Arabic (Morocco) 0x18010x1801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Omã)Arabic (Oman) 0x20010x2001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Catar)Arabic (Qatar) 0x40010x4001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Arábia Saudita)Arabic (Saudi Arabia) 0x04010x0401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Síria)Arabic (Syria) 0x28010x2801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Tunísia)Arabic (Tunisia) 0x1c010x1c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (EAU)Arabic (U.A.E.) 0x38010x3801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Iêmen)Arabic (Yemen) 0x24010x2401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Armênio (Armênia)Armenian (Armenia) 0x042b0x042b 0x04190x0419 Latin1_General_CI_ASLatin1_General_CI_AS
Assamês (Índia)Assamese (India) 0x044d0x044d 0x044d0x044d Indisponível no nível do servidorNot available at server level
Azeri (Azerbaijão, cirílico)Azeri (Azerbaijan, Cyrillic) 0x082c0x082c 0x082c0x082c Preterido, não disponível no nível do servidorDeprecated, not available at server level
Azeri (Azerbaijão, latino)Azeri (Azerbaijan, Latin) 0x042c0x042c 0x042c0x042c Preterido, não disponível no nível do servidorDeprecated, not available at server level
Bashkir (Rússia)Bashkir (Russia) 0x046d0x046d 0x046d0x046d Latin1_General_CI_AILatin1_General_CI_AI
Basco (País Basco)Basque (Basque) 0x042d0x042d 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Bielorrusso (Belarus)Belarusian (Belarus) 0x04230x0423 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Bengali (Bangladesh)Bengali (Bangladesh) 0x08450x0845 0x04450x0445 Indisponível no nível do servidorNot available at server level
Bengali (India)Bengali (India) 0x04450x0445 0x04390x0439 Indisponível no nível do servidorNot available at server level
Bósnio (Bósnia e Herzegovina, Cirílico)Bosnian (Bosnia and Herzegovina, Cyrillic) 0x201a0x201a 0x201a0x201a Latin1_General_CI_AILatin1_General_CI_AI
Bósnio (Bósnia e Herzegovina, Latino)Bosnian (Bosnia and Herzegovina, Latin) 0x141a0x141a 0x141a0x141a Latin1_General_CI_AILatin1_General_CI_AI
Bretão (França)Breton (France) 0x047e0x047e 0x047e0x047e Latin1_General_CI_AILatin1_General_CI_AI
Búlgaro (Bulgária)Bulgarian (Bulgaria) 0x04020x0402 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Catalão (Catalunha)Catalan (Catalan) 0x04030x0403 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Chinês (RAE de Hong Kong, RPC)Chinese (Hong Kong SAR, PRC) 0x0c040x0c04 0x04040x0404 Chinese_Taiwan_Stroke_CI_ASChinese_Taiwan_Stroke_CI_AS
Chinese (Macao SAR)Chinese (Macao SAR) 0x14040x1404 0x14040x1404 Latin1_General_CI_AILatin1_General_CI_AI
Chinês (Macau)Chinese (Macau) 0x214040x21404 0x214040x21404 Latin1_General_CI_AILatin1_General_CI_AI
Chinês (China)Chinese (PRC) 0x08040x0804 0x08040x0804 Chinese_PRC_CI_ASChinese_PRC_CI_AS
Chinês (China)Chinese (PRC) 0x208040x20804 0x208040x20804 Chinese_PRC_Stroke_CI_ASChinese_PRC_Stroke_CI_AS
Chinês (Singapura)Chinese (Singapore) 0x10040x1004 0x08040x0804 Chinese_PRC_CI_ASChinese_PRC_CI_AS
Chinês (Singapura)Chinese (Singapore) 0x210040x21004 0x208040x20804 Chinese_PRC_Stroke_CI_ASChinese_PRC_Stroke_CI_AS
Chinês (Taiwan)Chinese (Taiwan) 0x304040x30404 0x304040x30404 Chinese_Taiwan_Bopomofo_CI_ASChinese_Taiwan_Bopomofo_CI_AS
Chinês (Taiwan)Chinese (Taiwan) 0x04040x0404 0x04040x0404 Chinese_Taiwan_Stroke_CI_ASChinese_Taiwan_Stroke_CI_AS
Corso (França)Corsican (France) 0x04830x0483 0x04830x0483 Latin1_General_CI_AILatin1_General_CI_AI
Croata (Bósnia e Herzegovina, Latino)Croatian (Bosnia and Herzegovina, Latin) 0x101a0x101a 0x041a0x041a Croatian_CI_ASCroatian_CI_AS
Croata (Croácia)Croatian (Croatia) 0x041a0x041a 0x041a0x041a Croatian_CI_ASCroatian_CI_AS
Tcheco (República Tcheca)Czech (Czech Republic) 0x04050x0405 0x04050x0405 Czech_CI_ASCzech_CI_AS
Dinamarquês (Dinamarca)Danish (Denmark) 0x04060x0406 0x04060x0406 Danish_Norwegian_CI_ASDanish_Norwegian_CI_AS
Dari (Afeganistão)Dari (Afghanistan) 0x048c0x048c 0x048c0x048c Latin1_General_CI_AILatin1_General_CI_AI
Divehi (Maldivas)Divehi (Maldives) 0x04650x0465 0x04650x0465 Indisponível no nível do servidorNot available at server level
Holandês (Bélgica)Dutch (Belgium) 0x08130x0813 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Holandês (Países Baixos)Dutch (Netherlands) 0x04130x0413 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (Austrália)English (Australia) 0x0c090x0c09 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (Belize)English (Belize) 0x28090x2809 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (Canadá)English (Canada) 0x10090x1009 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (Caribe)English (Caribbean) 0x24090x2409 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (Índia)English (India) 0x40090x4009 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (Irlanda)English (Ireland) 0x18090x1809 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (Jamaica)English (Jamaica) 0x20090x2009 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (Malásia)English (Malaysia) 0x44090x4409 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (Nova Zelândia)English (New Zealand) 0x14090x1409 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (Filipinas)English (Philippines) 0x34090x3409 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (Singapura)English (Singapore) 0x48090x4809 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (África do Sul)English (South Africa) 0x1c090x1c09 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (Trinidad e Tobago)English (Trinidad and Tobago) 0x2c090x2c09 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (Reino Unido)English (United Kingdom) 0x08090x0809 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglês (Estados Unidos)English (United States) 0x04090x0409 0x04090x0409 SQL_Latin1_General_CP1_CI_ASSQL_Latin1_General_CP1_CI_AS
Inglês (Zimbábue)English (Zimbabwe) 0x30090x3009 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Estoniano (Estônia)Estonian (Estonia) 0x04250x0425 0x04250x0425 Estonian_CI_ASEstonian_CI_AS
Feroês (Ilhas Faroe)Faroese (Faroe Islands) 0x04380x0438 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Filipino (Filipinas)Filipino (Philippines) 0x04640x0464 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Finlandês (Finlândia)Finnish (Finland) 0x040b0x040b 0x040b0x040b Finnish_Swedish_CI_ASFinnish_Swedish_CI_AS
Francês (Bélgica)French (Belgium) 0x080c0x080c 0x040c0x040c French_CI_ASFrench_CI_AS
Francês (Canadá)French (Canada) 0x0c0c0x0c0c 0x040c0x040c French_CI_ASFrench_CI_AS
Francês (França)French (France) 0x040c0x040c 0x040c0x040c French_CI_ASFrench_CI_AS
Francês (Luxemburgo)French (Luxembourg) 0x140c0x140c 0x040c0x040c French_CI_ASFrench_CI_AS
Francês (Mônaco)French (Monaco) 0x180c0x180c 0x040c0x040c French_CI_ASFrench_CI_AS
Francês (Suíça)French (Switzerland) 0x100c0x100c 0x040c0x040c French_CI_ASFrench_CI_AS
Frisão (Holanda)Frisian (Netherlands) 0x04620x0462 0x04620x0462 Latin1_General_CI_AILatin1_General_CI_AI
Galego (Espanha)Galician (Spain) 0x04560x0456 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Georgiano (Geórgia)Georgian (Georgia) 0x104370x10437 0x104370x10437 Georgian_Modern_Sort_CI_ASGeorgian_Modern_Sort_CI_AS
Georgiano (Geórgia)Georgian (Georgia) 0x04370x0437 0x04190x0419 Latin1_General_CI_ASLatin1_General_CI_AS
Alemão – classificação do catálogo telefônico (DIN)German - Phone Book Sort (DIN) 0x104070x10407 0x104070x10407 German_PhoneBook_CI_ASGerman_PhoneBook_CI_AS
Alemão (Áustria)German (Austria) 0x0c070x0c07 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Alemão (Alemanha)German (Germany) 0x04070x0407 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Alemão (Liechtenstein)German (Liechtenstein) 0x14070x1407 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Alemão (Luxemburgo)German (Luxembourg) 0x10070x1007 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Alemão (Suíça)German (Switzerland) 0x08070x0807 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Grego (Grécia)Greek (Greece) 0x04080x0408 0x04080x0408 Greek_CI_ASGreek_CI_AS
Groenlandês (Groenlândia)Greenlandic (Greenland) 0x046f0x046f 0x04060x0406 Danish_Norwegian_CI_ASDanish_Norwegian_CI_AS
Gujarati (Índia)Gujarati (India) 0x04470x0447 0x04390x0439 Indisponível no nível do servidorNot available at server level
hauçá (Nigéria, Latino)Hausa (Nigeria, Latin) 0x04680x0468 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Hebraico (Israel)Hebrew (Israel) 0x040d0x040d 0x040d0x040d Hebrew_CI_ASHebrew_CI_AS
Híndi (Índia)Hindi (India) 0x04390x0439 0x04390x0439 Indisponível no nível do servidorNot available at server level
Húngaro (Hungria)Hungarian (Hungary) 0x040e0x040e 0x040e0x040e Hungarian_CI_ASHungarian_CI_AS
Classificação Técnica HúngaraHungarian Technical Sort 0x1040e0x1040e 0x1040e0x1040e Hungarian_Technical_CI_ASHungarian_Technical_CI_AS
Islandês (Islândia)Icelandic (Iceland) 0x040f0x040f 0x040f0x040f Icelandic_CI_ASIcelandic_CI_AS
Igbo (Nigéria)Igbo (Nigeria) 0x04700x0470 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Indonésio (Indonésia)Indonesian (Indonesia) 0x04210x0421 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inuktitut (Canadá, latino)Inuktitut (Canada, Latin) 0x085d0x085d 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inuktitut (silábico) CanadáInuktitut (Syllabics) Canada 0x045d0x045d 0x045d0x045d Latin1_General_CI_AILatin1_General_CI_AI
Irlandês (Irlanda)Irish (Ireland) 0x083c0x083c 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Italiano (Itália)Italian (Italy) 0x04100x0410 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Italiano (Suíça)Italian (Switzerland) 0x08100x0810 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Japonês (Japão XJIS)Japanese (Japan XJIS) 0x04110x0411 0x04110x0411 Japanese_CI_ASJapanese_CI_AS
Japonês (Japão)Japanese (Japan) 0x0404110x040411 0x404110x40411 Latin1_General_CI_AILatin1_General_CI_AI
canarim (Índia)Kannada (India) 0x044b0x044b 0x04390x0439 Indisponível no nível do servidorNot available at server level
Cazaque (Cazaquistão)Kazakh (Kazakhstan) 0x043f0x043f 0x043f0x043f Kazakh_90_CI_ASKazakh_90_CI_AS
Khmer (Camboja)Khmer (Cambodia) 0x04530x0453 0x04530x0453 Indisponível no nível do servidorNot available at server level
Quiché (Guatemala)K'iche (Guatemala) 0x04860x0486 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Quiniaruanda (Ruanda)Kinyarwanda (Rwanda) 0x04870x0487 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Konkani (Índia)Konkani (India) 0x04570x0457 0x04390x0439 Indisponível no nível do servidorNot available at server level
Coreano (classificação de dicionário coreano)Korean (Korea Dictionary Sort) 0x04120x0412 0x04120x0412 Korean_Wansung_CI_ASKorean_Wansung_CI_AS
Quirguiz (Quirguistão)Kyrgyz (Kyrgyzstan) 0x04400x0440 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Laosiano (RDP do Laos)Lao (Lao PDR) 0x04540x0454 0x04540x0454 Indisponível no nível do servidorNot available at server level
Letão (Letônia)Latvian (Latvia) 0x04260x0426 0x04260x0426 Latvian_CI_ASLatvian_CI_AS
Lituano (Lituânia)Lithuanian (Lithuania) 0x04270x0427 0x04270x0427 Lithuanian_CI_ASLithuanian_CI_AS
Sorábio baixo (Alemanha)Lower Sorbian (Germany) 0x082e0x082e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Luxemburguês (Luxemburgo)Luxembourgish (Luxembourg) 0x046e0x046e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Macedônio (Macedônia, Antiga República Iugoslava da Macedônia)Macedonian (Macedonia, FYROM) 0x042f0x042f 0x042f0x042f Macedonian_FYROM_90_CI_ASMacedonian_FYROM_90_CI_AS
Malaio (Brunei Darussalam)Malay (Brunei Darussalam) 0x083e0x083e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Malaio (Malásia)Malay (Malaysia) 0x043e0x043e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Malaiala (Índia)Malayalam (India) 0x044c0x044c 0x04390x0439 Indisponível no nível do servidorNot available at server level
Maltês (Malta)Maltese (Malta) 0x043a0x043a 0x043a0x043a Latin1_General_CI_AILatin1_General_CI_AI
Maori (Nova Zelândia)Maori (New Zealand) 0x04810x0481 0x04810x0481 Latin1_General_CI_AILatin1_General_CI_AI
Mapudungun (Chile)Mapudungun (Chile) 0x047a0x047a 0x047a0x047a Latin1_General_CI_AILatin1_General_CI_AI
Marati (Índia)Marathi (India) 0x044e0x044e 0x04390x0439 Indisponível no nível do servidorNot available at server level
moicano (Canadá)Mohawk (Canada) 0x047c0x047c 0x047c0x047c Latin1_General_CI_AILatin1_General_CI_AI
Mongol (Mongólia)Mongolian (Mongolia) 0x04500x0450 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Mongol (RPC)Mongolian (PRC) 0x08500x0850 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Nepalês (Nepal)Nepali (Nepal) 0x04610x0461 0x04610x0461 Indisponível no nível do servidorNot available at server level
Norueguês, (Bokmål, Noruega)Norwegian (Bokmål, Norway) 0x04140x0414 0x04140x0414 Latin1_General_CI_AILatin1_General_CI_AI
Norueguês (Nynorsk, Noruega)Norwegian (Nynorsk, Norway) 0x08140x0814 0x04140x0414 Latin1_General_CI_AILatin1_General_CI_AI
occitânico (França)Occitan (France) 0x04820x0482 0x040c0x040c French_CI_ASFrench_CI_AS
Oriá (Índia)Oriya (India) 0x04480x0448 0x04390x0439 Indisponível no nível do servidorNot available at server level
Pashto (Afeganistão)Pashto (Afghanistan) 0x04630x0463 0x04630x0463 Indisponível no nível do servidorNot available at server level
Persa (Irã)Persian (Iran) 0x04290x0429 0x04290x0429 Latin1_General_CI_AILatin1_General_CI_AI
Polonês (Polônia)Polish (Poland) 0x04150x0415 0x04150x0415 Polish_CI_ASPolish_CI_AS
Português (Brasil)Portuguese (Brazil) 0x04160x0416 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Português (Portugal)Portuguese (Portugal) 0x08160x0816 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
panjabi (Índia)Punjabi (India) 0x04460x0446 0x04390x0439 Indisponível no nível do servidorNot available at server level
Quíchua (Bolívia)Quechua (Bolivia) 0x046b0x046b 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Quíchua (Equador)Quechua (Ecuador) 0x086b0x086b 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Quíchua (Peru)Quechua (Peru) 0x0c6b0x0c6b 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Romeno (Romênia)Romanian (Romania) 0x04180x0418 0x04180x0418 Romanian_CI_ASRomanian_CI_AS
Romanche (Suíça)Romansh (Switzerland) 0x04170x0417 0x04170x0417 Latin1_General_CI_AILatin1_General_CI_AI
Russo (Rússia)Russian (Russia) 0x04190x0419 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Sami (Inari, Finlândia)Sami (Inari, Finland) 0x243b0x243b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Sami (Lule, Noruega)Sami (Lule, Norway) 0x103b0x103b 0x043b0x043b Latin1_General_CI_AILatin1_General_CI_AI
Sami (Lule, Suécia)Sami (Lule, Sweden) 0x143b0x143b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Sami (Norte, Finlândia)Sami (Northern, Finland) 0x0c3b0x0c3b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Sami (Norte, Noruega)Sami (Northern, Norway) 0x043b0x043b 0x043b0x043b Latin1_General_CI_AILatin1_General_CI_AI
Sami (Norte, Suécia)Sami (Northern, Sweden) 0x083b0x083b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Sami (Skolt, Finlândia)Sami (Skolt, Finland) 0x203b0x203b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Sami (Sul, Noruega)Sami (Southern, Norway) 0x183b0x183b 0x043b0x043b Latin1_General_CI_AILatin1_General_CI_AI
Sami (Sul, Suécia)Sami (Southern, Sweden) 0x1c3b0x1c3b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Sânscrito (Índia)Sanskrit (India) 0x044f0x044f 0x04390x0439 Indisponível no nível do servidorNot available at server level
Sérvio (Bósnia e Herzegovina, cirílico)Serbian (Bosnia and Herzegovina, Cyrillic) 0x1c1a0x1c1a 0x0c1a0x0c1a Latin1_General_CI_AILatin1_General_CI_AI
Sérvio (Bósnia e Herzegovina, latino)Serbian (Bosnia and Herzegovina, Latin) 0x181a0x181a 0x081a0x081a Latin1_General_CI_AILatin1_General_CI_AI
Sérvio (Sérvia, cirílico)Serbian (Serbia, Cyrillic) 0x0c1a0x0c1a 0x0c1a0x0c1a Latin1_General_CI_AILatin1_General_CI_AI
Sérvio (Sérvia, latino)Serbian (Serbia, Latin) 0x081a0x081a 0x081a0x081a Latin1_General_CI_AILatin1_General_CI_AI
soto setentrional (África do Sul)Sesotho sa Leboa/Northern Sotho (South Africa) 0x046c0x046c 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Setswana/Tswana (África do Sul)Setswana/Tswana (South Africa) 0x04320x0432 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Cingalês (Sri Lanka)Sinhala (Sri Lanka) 0x045b0x045b 0x04390x0439 Indisponível no nível do servidorNot available at server level
Eslovaco (Eslováquia)Slovak (Slovakia) 0x041b0x041b 0x041b0x041b Slovak_CI_ASSlovak_CI_AS
Esloveno (Eslovênia)Slovenian (Slovenia) 0x04240x0424 0x04240x0424 Slovenian_CI_ASSlovenian_CI_AS
Espanhol (Argentina)Spanish (Argentina) 0x2c0a0x2c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Bolívia)Spanish (Bolivia) 0x400a0x400a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Chile)Spanish (Chile) 0x340a0x340a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Colômbia)Spanish (Colombia) 0x240a0x240a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Costa Rica)Spanish (Costa Rica) 0x140a0x140a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (República Dominicana)Spanish (Dominican Republic) 0x1c0a0x1c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Equador)Spanish (Ecuador) 0x300a0x300a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (El Salvador)Spanish (El Salvador) 0x440a0x440a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Guatemala)Spanish (Guatemala) 0x100a0x100a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Honduras)Spanish (Honduras) 0x480a0x480a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (México)Spanish (Mexico) 0x080a0x080a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Nicarágua)Spanish (Nicaragua) 0x4c0a0x4c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Panamá)Spanish (Panama) 0x180a0x180a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Paraguai)Spanish (Paraguay) 0x3c0a0x3c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Peru)Spanish (Peru) 0x280a0x280a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Porto Rico)Spanish (Puerto Rico) 0x500a0x500a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Espanha)Spanish (Spain) 0x0c0a0x0c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Espanha, classificação tradicional)Spanish (Spain, Traditional Sort) 0x040a0x040a 0x040a0x040a Traditional_Spanish_CI_ASTraditional_Spanish_CI_AS
Espanhol (Estados Unidos)Spanish (United States) 0x540a0x540a 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Espanhol (Uruguai)Spanish (Uruguay) 0x380a0x380a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espanhol (Venezuela)Spanish (Venezuela) 0x200a0x200a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Suaíle (Quênia)Swahili (Kenya) 0x04410x0441 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Sueco (Finlândia)Swedish (Finland) 0x081d0x081d 0x040b0x040b Finnish_Swedish_CI_ASFinnish_Swedish_CI_AS
Sueco (Suécia)Swedish (Sweden) 0x041d0x041d 0x040b0x040b Finnish_Swedish_CI_ASFinnish_Swedish_CI_AS
Siríaco (Síria)Syriac (Syria) 0x045a0x045a 0x045a0x045a Indisponível no nível do servidorNot available at server level
Tadjique (Tadjiquistão)Tajik (Tajikistan) 0x04280x0428 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Tamazirte (Argélia, latino)Tamazight (Algeria, Latin) 0x085f0x085f 0x085f0x085f Latin1_General_CI_AILatin1_General_CI_AI
Tâmil (Índia)Tamil (India) 0x04490x0449 0x04390x0439 Indisponível no nível do servidorNot available at server level
Tatárico (Rússia)Tatar (Russia) 0x04440x0444 0x04440x0444 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Télugo (Índia)Telugu (India) 0x044a0x044a 0x04390x0439 Indisponível no nível do servidorNot available at server level
Tailandês (Tailândia)Thai (Thailand) 0x041e0x041e 0x041e0x041e Thai_CI_ASThai_CI_AS
Tibetano (RPC)Tibetan (PRC) 0x04510x0451 0x04510x0451 Indisponível no nível do servidorNot available at server level
Turco (Turquia)Turkish (Turkey) 0x041f0x041f 0x041f0x041f Turkish_CI_ASTurkish_CI_AS
Turcomeno (Turcomenistão)Turkmen (Turkmenistan) 0x04420x0442 0x04420x0442 Latin1_General_CI_AILatin1_General_CI_AI
Uighur (RPC)Uighur (PRC) 0x04800x0480 0x04800x0480 Latin1_General_CI_AILatin1_General_CI_AI
Ucraniano (Ucrânia)Ukrainian (Ukraine) 0x04220x0422 0x04220x0422 Ukrainian_CI_ASUkrainian_CI_AS
Sorábio Alto (Alemanha)Upper Sorbian (Germany) 0x042e0x042e 0x042e0x042e Latin1_General_CI_AILatin1_General_CI_AI
Urdu (Paquistão)Urdu (Pakistan) 0x04200x0420 0x04200x0420 Latin1_General_CI_AILatin1_General_CI_AI
Uzbeque (Uzbequistão, cirílico)Uzbek (Uzbekistan, Cyrillic) 0x08430x0843 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Uzbeque (Uzbequistão, latino)Uzbek (Uzbekistan, Latin) 0x04430x0443 0x04430x0443 Uzbek_Latin_90_CI_ASUzbek_Latin_90_CI_AS
Vietnamita (Vietnã)Vietnamese (Vietnam) 0x042a0x042a 0x042a0x042a Vietnamese_CI_ASVietnamese_CI_AS
Galês (Reino Unido)Welsh (United Kingdom) 0x04520x0452 0x04520x0452 Latin1_General_CI_AILatin1_General_CI_AI
uolofe (Senegal)Wolof (Senegal) 0x04880x0488 0x040c0x040c French_CI_ASFrench_CI_AS
Xhosa/isiXhosa (África do Sul)Xhosa/isiXhosa (South Africa) 0x04340x0434 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Yakut (Rússia)Yakut (Russia) 0x04850x0485 0x04850x0485 Latin1_General_CI_AILatin1_General_CI_AI
Yi (RPC)Yi (PRC) 0x04780x0478 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Ioruba (Nigéria)Yoruba (Nigeria) 0x046a0x046a 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Zulu/isiZulu (África do Sul)Zulu/isiZulu (South Africa) 0x04350x0435 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS

Observação

As ordenações somente Unicode não podem ser selecionadas durante a instalação do SQL ServerSQL Server, pois não são compatíveis como ordenações no nível de servidor.Unicode-only collations can't be selected during SQL ServerSQL Server setup, because they aren't supported as server-level collations.

Depois de atribuir uma ordenação ao servidor, você só poderá alterá-la exportando todos os objetos de banco de dados e dados, recriando o banco de dados mestre e importando todos os objetos de banco de dados e dados.After you've assigned a collation to the server, you can change it only by exporting all database objects and data, rebuilding the master database, and importing all database objects and data. Em vez de alterar a ordenação padrão de uma instância do SQL ServerSQL Server, você pode especificar a ordenação desejada ao criar um banco de dados ou uma coluna de banco de dados.Instead of changing the default collation of an instance of SQL ServerSQL Server, you can specify the desired collation when you create a new database or database column.

Para consultar a ordenação do servidor para uma instância do SQL ServerSQL Server, use a função SERVERPROPERTY:To query the server collation for an instance of SQL ServerSQL Server, use the SERVERPROPERTY function:

SELECT CONVERT(varchar, SERVERPROPERTY('collation'));

Para consultar o servidor por todas as ordenações disponíveis, use a seguinte função interna fn_helpcollations():To query the server for all available collations, use the following fn_helpcollations() built-in function:

SELECT * FROM sys.fn_helpcollations();

Ordenações do nível do banco de dadosDatabase-level collations

Ao criar ou modificar um banco de dados, use a cláusula COLLATE da instrução CREATE DATABASE ou ALTER DATABASE para especificar a ordenação de banco de dados padrão.When you create or modify a database, you can use the COLLATE clause of the CREATE DATABASE or ALTER DATABASE statement to specify the default database collation. Se nenhuma ordenação for especificada, o banco de dados receberá a ordenação do servidor.If no collation is specified, the database is assigned the server collation.

Não é possível alterar a ordenação de bancos de dados do sistema, a menos que você altere a ordenação para o servidor.You can't change the collation of system databases unless you change the collation for the server.

A ordenação de banco de dados é usada para todos os metadados no banco de dados, e a ordenação é o padrão para todas as colunas de cadeia de caracteres, objetos temporários, nomes de variáveis e todas as outras cadeias de caracteres usadas no banco de dados.The database collation is used for all metadata in the database, and the collation is the default for all string columns, temporary objects, variable names, and any other strings used in the database. Quando você altera a ordenação de um banco de dados de usuário, pode haver conflitos de ordenação quando consultas no banco de dados acessam tabelas temporárias.When you change the collation of a user database, there can be collation conflicts when queries in the database access temporary tables. Sempre são armazenadas tabelas temporárias no banco de dados do sistema tempdb que usa a ordenação para a instância.Temporary tables are always stored in the tempdb system database, which uses the collation for the instance. As consultas que comparam dados de caractere entre o banco de dados de usuário e tempdb poderão falhar se as ordenações causarem um conflito ao avaliar os dados de caractere.Queries that compare character data between the user database and tempdb might fail if the collations cause a conflict in evaluating the character data. Resolva esse problema especificando a cláusula COLLATE na consulta.You can resolve this issue by specifying the COLLATE clause in the query. Para obter mais informações, confira COLLATE (Transact-SQL).For more information, see COLLATE (Transact-SQL).

Observação

Não é possível alterar a ordenação depois que o banco de dados for criado no Banco de dados SQL do AzureAzure SQL Database.You can't change the collation after the database has been created on Banco de dados SQL do AzureAzure SQL Database.

Altere a ordenação de um banco de dados de usuário usando uma instrução ALTER DATABASE semelhante à seguinte:You can change the collation of a user database by using an ALTER DATABASE statement that's similar to the following:

ALTER DATABASE myDB COLLATE Greek_CS_AI;

Importante

A alteração da ordenação no nível de banco de dados não afeta as ordenações no nível de coluna ou de expressão.Altering the database-level collation doesn't affect column-level or expression-level collations.

Recupere a ordenação atual de um banco de dados usando uma instrução semelhante à seguinte:You can retrieve the current collation of a database by using a statement that's similar to the following:

SELECT CONVERT (VARCHAR(50), DATABASEPROPERTYEX('database_name','collation'));

Ordenações em nível de colunaColumn-level collations

Ao criar ou alterar uma tabela, você pode especificar ordenações para cada coluna de cadeia de caracteres usando a cláusula COLLATE.When you create or alter a table, you can specify collations for each character-string column by using the COLLATE clause. Se você não especificar uma ordenação, a coluna será atribuída à ordenação padrão do banco de dados.If you don't specify a collation, the column is assigned the default collation of the database.

Altere a ordenação de uma coluna usando uma instrução ALTER TABLE semelhante à seguinte:You can change the collation of a column by using an ALTER TABLE statement that's similar to the following:

ALTER TABLE myTable ALTER COLUMN mycol NVARCHAR(10) COLLATE Greek_CS_AI;

Ordenações no nível da expressãoExpression-level collations

As ordenações no nível de expressão são definidas quando uma instrução é executada e afetam o modo como um conjunto de resultados é retornado.Expression-level collations are set when a statement is run, and they affect the way a result set is returned. Isso permite que os resultados da classificação ORDER BY sejam específicos da localidade.This enables ORDER BY sort results to be locale-specific. Para implementar ordenações no nível da expressão, use uma cláusula COLLATE como a seguinte:To implement expression-level collations, use a COLLATE clause such as the following:

SELECT name FROM customer ORDER BY name COLLATE Latin1_General_CS_AI;    

LocalidadeLocale

Uma localidade é um conjunto de informações associadas a uma localização ou uma cultura.A locale is a set of information that's associated with a location or a culture. As informações podem incluir o nome e o identificador do idioma falado, o script usado para escrever o idioma e as convenções culturais.The information can include the name and identifier of the spoken language, the script that's used to write the language, and cultural conventions. As ordenações podem ser associadas a uma ou mais localidades.Collations can be associated with one or more locales. Para obter mais informações, consulte o artigo sobre IDs de localidade atribuídas pela Microsoft.For more information, see Locale IDs Assigned by Microsoft.

Página de códigoCode page

Uma página de código é um conjunto de caracteres ordenado de um determinado script no qual um índice numérico ou valor de ponto de código é associado a cada caractere.A code page is an ordered set of characters of a given script in which a numeric index, or code point value, is associated with each character. Uma página de código do Windows geralmente é referenciada como um conjunto de caracteres.A Windows code page is typically referred to as a character set or a charset. As páginas de código são usadas para oferecer suporte aos conjuntos de caracteres e layouts de teclado usados por diferentes localidades de sistema do Windows.Code pages are used to provide support for the character sets and keyboard layouts that are used by different Windows system locales.

Ordem de classificaçãoSort order

A ordem de classificação especifica como os valores de dados são classificados.Sort order specifies how data values are sorted. A ordem afeta os resultados da comparação de dados.The order affects the results of data comparison. Os dados são classificados com o uso de ordenações e podem ser otimizados com o uso de índices.Data is sorted by using collations, and it can be optimized by using indexes.

Suporte a UnicodeUnicode support

O Unicode é um padrão para mapear pontos de código para caracteres.Unicode is a standard for mapping code points to characters. Como ele foi projetado para abranger todos os caracteres de todos os idiomas do mundo, você não precisa ter páginas de código diferentes para manipular diferentes conjuntos de caracteres.Because it's designed to cover all the characters of all the languages of the world, you don't need different code pages to handle different sets of characters.

Noções básicas de UnicodeUnicode basics

O armazenamento de dados em vários idiomas em um banco de dados é difícil de administrar quando você usa apenas dados de caracteres e páginas de código.Storing data in multiple languages within one database is difficult to manage when you use only character data and code pages. Também é difícil encontrar uma página de código para o banco de dados que possa armazenar todos os caracteres necessários específicos a um idioma.It's also difficult to find one code page for the database that can store all the required language-specific characters. Além disso, é difícil garantir a tradução correta de caracteres especiais quando eles são lidos ou atualizados por uma variedade de clientes que executam várias páginas de código.Additionally, it's difficult to guarantee the correct translation of special characters when they're being read or updated by a variety of clients that are running various code pages. Bancos de dados que oferecem suporte a clientes internacionais sempre deveriam usar tipos de dados Unicode em vez de tipos de dados não Unicode.Databases that support international clients should always use Unicode data types instead of non-Unicode data types.

Por exemplo, considere um banco de dados de clientes na América do Norte que deve lidar com três idiomas principais:For example, consider a database of customers in North America that must handle three major languages:

  • Nomes e endereços em espanhol para o MéxicoSpanish names and addresses for Mexico
  • Nomes e endereços em francês para QuebecFrench names and addresses for Quebec
  • Nomes e endereços em inglês para o resto do Canadá e dos Estados UnidosEnglish names and addresses for the rest of Canada and the United States

Ao usar apenas colunas de caracteres e páginas de código, você deve tomar cuidado para garantir que o banco de dados seja instalado com uma página de código que manipule os caracteres dos três idiomas.When you use only character columns and code pages, you must take care to ensure that the database is installed with a code page that will handle the characters of all three languages. Você também precisa tomar cuidado para garantir a tradução correta de caracteres de um dos idiomas, quando os caracteres forem lidos por clientes que executam uma página de código de outro idioma.You must also take care to guarantee the correct translation of characters from any of the languages when the characters are read by clients that are running a code page for another language.

Observação

As páginas de código usadas por um cliente são determinadas pelas configurações do SO (sistema operacional).The code pages that a client uses are determined by the operating system (OS) settings. Para definir páginas de código de cliente no sistema operacional Windows, use Configurações Regionais no Painel de Controle.To set client code pages on the Windows operating system, use Regional Settings in Control Panel.

É difícil selecionar uma página de código para tipos de dados de caractere que dará suporte a todos os caracteres necessários para um público-alvo mundial.It would be difficult to select a code page for character data types that will support all the characters that are required by a worldwide audience. A maneira mais fácil de gerenciar dados de caractere em bancos de dados internacionais é sempre usar um tipo de dados com suporte a Unicode.The easiest way to manage character data in international databases is to always use a data type that supports Unicode.

Tipos de dados UnicodeUnicode data types

Se você armazenar dados de caractere que refletem várias linguagens no SQL ServerSQL Server (SQL Server 2005 (9.x)SQL Server 2005 (9.x) e posterior), use tipos de dados Unicode (nchar, nvarchar e ntext) em vez de tipos de dados não Unicode (char, varchar e text).If you store character data that reflects multiple languages in SQL ServerSQL Server (SQL Server 2005 (9.x)SQL Server 2005 (9.x) and later), use Unicode data types (nchar, nvarchar, and ntext) instead of non-Unicode data types (char, varchar, and text).

Observação

No caso dos tipos de dados Unicode, o Mecanismo de Banco de DadosDatabase Engine poderá representar até 65.535 caracteres usando o UCS-2 ou o intervalo completo de Unicode (1.114.111 caracteres) se caracteres suplementares forem usados.For Unicode data types, the Mecanismo de Banco de DadosDatabase Engine can represent up to 65,535 characters using UCS-2, or the full Unicode range (‭1,114,111‬ characters) if supplementary characters are used. Para obter mais informações sobre como habilitar caracteres suplementares, confira Caracteres suplementares.For more information about enabling supplementary characters, see Supplementary Characters.

Como alternativa, no SQL Server 2019 (15.x)SQL Server 2019 (15.x) em diante, se uma ordenação habilitada para UTF-8 (_UTF8) for usada, os tipos de dados que eram não Unicode (char e varchar) se tornarão tipos de dados Unicode (UTF-8).Alternatively, starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x), if a UTF-8 enabled collation (_UTF8) is used, previously non-Unicode data types (char and varchar) become Unicode (UTF-8) data types. O SQL Server 2019 (15.x)SQL Server 2019 (15.x) não altera o comportamento dos tipos de dados Unicode que já existiam (UTF-16) (nchar, nvarchar e ntext).SQL Server 2019 (15.x)SQL Server 2019 (15.x) doesn't change the behavior of previously existing Unicode (UTF-16) data types (nchar, nvarchar, and ntext). Para obter mais informações, confira Diferenças de armazenamento entre UTF-8 e UTF-16.For more information, see Storage differences between UTF-8 and UTF-16.

Considerações sobre UnicodeUnicode considerations

Limitações consideráveis estão associadas a tipos de dados não Unicode.Significant limitations are associated with non-Unicode data types. Isso ocorre porque um computador não Unicode fica limitado a usar uma única página de código.This is because a non-Unicode computer is limited to using a single code page. Você pode ter um ganho de desempenho com o uso de Unicode, porque ele exige menos conversões de página de código.You might experience performance gain by using Unicode, because it requires fewer code-page conversions. As ordenações Unicode precisam ser selecionadas individualmente no nível de banco de dados, coluna ou expressão, porque não há suporte para elas no nível de servidor.Unicode collations must be selected individually at the database, column, or expression level because they aren't supported at the server level.

Quando você move dados de um servidor para um cliente, a ordenação do servidor pode não ser reconhecida por drivers de cliente mais antigos.When you move data from a server to a client, your server collation might not be recognized by older client drivers. Isso pode ocorrer quando você move dados de um servidor Unicode para um cliente não Unicode.This can occur when you move data from a Unicode server to a non-Unicode client. A melhor opção pode ser atualizar o sistema operacional do cliente para que as ordenações de sistema subjacentes sejam atualizadas.Your best option might be to upgrade the client operating system so that the underlying system collations are updated. Se houver um software de cliente de banco de dados instalado no cliente, você deverá considerar a possibilidade de aplicar uma atualização de serviço a esse software.If the client has database client software installed, you might consider applying a service update to the database client software.

Dica

Você também pode tentar usar uma ordenação diferente para os dados no servidor.You can also try to use a different collation for the data on the server. Escolha uma ordenação que mapeia para uma página de código no cliente.Choose a collation that maps to a code page on the client.

Para usar as ordenações UTF-16 disponíveis no SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) e posterior) visando melhorar a pesquisa e a classificação de alguns caracteres Unicode (somente ordenações do Windows), selecione uma das ordenações de caracteres suplementares (_SC) ou uma das ordenações da versão 140.To use the UTF-16 collations that are available in SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later) to improve searching and sorting of some Unicode characters (Windows collations only), you can select either one of the supplementary characters (_SC) collations or one of the version 140 collations.

Para usar as ordenações UTF-8 disponíveis no SQL Server 2019 (15.x)SQL Server 2019 (15.x) e melhorar a pesquisa e a classificação de alguns caracteres Unicode (somente ordenações do Windows), você precisará selecionar ordenações habilitadas para codificação UTF-8 (_UTF8).To use the UTF-8 collations that are available in SQL Server 2019 (15.x)SQL Server 2019 (15.x), and to improve searching and sorting of some Unicode characters (Windows collations only), you must select UTF-8 encoding-enabled collations(_UTF8).

  • O sinalizador de UTF8 pode ser aplicado a:The UTF8 flag can be applied to:

    • Ordenações da versão 90Version 90 collations

      Observação

      Somente quando caracteres suplementares (_SC) ou ordenações com diferenciação de seletor de variação (_VSS) já existem nesta versão.Only when supplementary characters (_SC) or variation-selector-sensitive (_VSS) aware collations already exist in this version.

    • Ordenações da versão 100Version 100 collations
    • Ordenações da versão 140Version 140 collations
    • Ordenação binária BIN21BIN21 binary collation
  • O sinalizador de UTF-8 não pode ser aplicado a:The UTF8 flag can't be applied to:

    • Ordenações da versão 90 sem suporte a caracteres suplementares (_SC) ou a diferenciação de seletor de variação (_VSS)Version 90 collations that don't support supplementary characters (_SC) or variation-selector-sensitive (_VSS)
    • As ordenações primárias BIN ou BIN22The BIN or BIN22 binary collations
    • As ordenações do SQL_*The SQL_* collations

1 No SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 2.3 em diante.1 Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 2.3. O SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 3.0 substituiu a ordenação UTF8_BIN2 pela Latin1_General_100_BIN2_UTF8.SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 3.0 replaced collation UTF8_BIN2 with Latin1_General_100_BIN2_UTF8.
2 Até com o SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 2.3.2 Up to with SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 2.3.

Para avaliar os problemas relacionados ao uso de tipos de dados Unicode ou não Unicode, teste seu cenário para medir as diferenças de desempenho em seu ambiente.To evaluate issues that are related to using Unicode or non-Unicode data types, test your scenario to measure performance differences in your environment. Uma boa prática é padronizar a ordenação usada nos sistemas de sua organização e implantar servidores e clientes Unicode sempre que possível.It's a good practice to standardize the collation that's used on systems across your organization, and to deploy Unicode servers and clients wherever possible.

Na maioria das situações, o SQL ServerSQL Server interage com outros servidores ou clientes, e a sua organização poderá usar vários padrões de acesso a dados entre aplicativos e instâncias de servidor.In many situations, SQL ServerSQL Server interacts with other servers or clients, and your organization might use multiple data-access standards between applications and server instances. ClientesSQL ServerSQL Server são de um destes dois tipos principais:SQL ServerSQL Server clients are one of two main types:

  • Clientes Unicode que usam o OLE DB e o ODBC versão 3.7 ou posterior.Unicode clients that use OLE DB and Open Database Connectivity (ODBC) version 3.7 or later.
  • Clientes não Unicode que usam a DB-Library e o ODBC versão 3.6 ou anterior.Non-Unicode clients that use DB-Library and ODBC version 3.6 or earlier.

A seguinte tabela fornece informações sobre como usar dados multilíngues com várias combinações de servidores Unicode e não Unicode:The following table provides information about using multilingual data with various combinations of Unicode and non-Unicode servers:

ServidorServer ClienteClient Benefícios ou limitaçõesBenefits or limitations
UnicodeUnicode UnicodeUnicode Como os dados Unicode são usados em todo o sistema, este cenário fornece o melhor desempenho e proteção contra danos de dados recuperados.Because Unicode data is used throughout the system, this scenario provides the best performance and protection from corruption of retrieved data. É isso o que acontece com a ADO (ActiveX Data Objects), o OLE DB e o ODBC versão 3.7 ou posterior.This is the situation with ActiveX Data Objects (ADO), OLE DB, and ODBC version 3.7 or later.
UnicodeUnicode Não UnicodeNon-Unicode Neste cenário, principalmente em conexões entre um servidor que executa um sistema operacional mais recente e um cliente que executa uma versão anterior do SQL ServerSQL Server ou em um sistema operacional mais antigo, pode haver limitações ou erros ao mover os dados para um computador cliente.In this scenario, especially with connections between a server that's running a newer operating system and a client that's running an earlier version of SQL ServerSQL Server, or on an older operating system, there can be limitations or errors when you move data to a client computer. Os dados Unicode no servidor tentam mapear para uma página de código correspondente no cliente não Unicode para converter os dados.Unicode data on the server tries to map to a corresponding code page on the non-Unicode client to convert the data.
Não UnicodeNon-Unicode UnicodeUnicode Essa não é uma configuração ideal para o uso de dados multilíngues.This isn't an ideal configuration for using multilingual data. Não é possível gravar dados Unicode no servidor não Unicode.You can't write Unicode data to the non-Unicode server. É provável que ocorram problemas quando os dados forem enviados para servidores que estejam fora da página de código do servidor.Problems are likely to occur when data is sent to servers that are outside the server's code page.
Não UnicodeNon-Unicode Não UnicodeNon-Unicode Este é um cenário muito limitado para dados multilíngues.This is a very limiting scenario for multilingual data. Você pode usar uma única página de código.You can use only a single code page.

Caracteres suplementaresSupplementary characters

O Unicode Consortium aloca para cada caractere um ponto de código exclusivo, que é um valor no intervalo 000000–10FFFF.The Unicode Consortium allocates to each character a unique code point, which is a value in the range 000000–10FFFF. Os caracteres usados com mais frequência têm valores de ponto de código no intervalo 000000–00FFFF (65.535 caracteres) que se ajustam a uma palavra de 8 ou 16 bits na memória e no disco.The most frequently used characters have code point values in the range 000000–00FFFF (65,535 characters) which fit into an 8-bit or 16-bit word in memory and on-disk. Geralmente, esse intervalo é designado como BMP (Plano Multilíngue Básico).This range is usually designated as the Basic Multilingual Plane (BMP).

No entanto, o Consortium Unicode estabeleceu 16 "planos" adicionais de caracteres, cada um com o mesmo tamanho do BMP.But the Unicode Consortium has established 16 additional "planes" of characters, each the same size as the BMP. Essa definição permite ao Unicode o potencial para representar 1.114.112 caracteres (ou seja, 216 * 17 caracteres) dentro do intervalo do ponto de código 000000–10FFFF.This definition allows Unicode the potential to represent 1,114,112 characters (that is, 216 * 17 characters) within the code point range 000000–10FFFF. Os caracteres com valores de ponto de código superiores a 00FFFF exigem duas a quatro palavras consecutivas de 8 bits (UTF-8) ou duas palavras consecutivas de 16 bits (UTF-16).Characters with code point values larger than 00FFFF require two to four consecutive 8-bit words (UTF-8), or two consecutive 16-bit words (UTF-16). Esses caracteres localizados além do BMP são chamados de caracteres suplementares, e as palavras adicionais consecutivas de 8 ou 16 bits são chamadas de pares alternativos.These characters located beyond the BMP are called supplementary characters, and the additional consecutive 8-bit or 16-bit words are called surrogate pairs. Para obter mais informações sobre caracteres suplementares, substitutos e pares alternativos, veja o Padrão Unicode.For more information about supplementary characters, surrogates, and surrogate pairs, refer to the Unicode Standard.

O SQL ServerSQL Server fornece tipos de dados, como nchar e nvarchar, para armazenar dados Unicode no intervalo do BMP (000000–00FFFF), que o Mecanismo de Banco de DadosDatabase Engine codifica usando UCS-2.SQL ServerSQL Server provides data types such as nchar and nvarchar to store Unicode data in the BMP range (000000–00FFFF), which the Mecanismo de Banco de DadosDatabase Engine encodes using UCS-2.

O SQL Server 2012 (11.x)SQL Server 2012 (11.x) introduziu uma nova família de ordenações de caracteres suplementares (_SC) que podem ser usadas com os tipos de dados nchar, nvarchar e sql_variant para representar o intervalo completo de caracteres Unicode (000000–10FFFF).SQL Server 2012 (11.x)SQL Server 2012 (11.x) introduced a new family of supplementary character (_SC) collations that can be used with the nchar, nvarchar, and sql_variant data types to represent the full Unicode character range (000000–10FFFF). Por exemplo: Latin1_General_100_CI_AS_SC ou, se você estiver usando uma ordenação de japonês, Japanese_Bushu_Kakusu_100_CI_AS_SC.For example: Latin1_General_100_CI_AS_SC or, if you're using a Japanese collation, Japanese_Bushu_Kakusu_100_CI_AS_SC.

SQL Server 2019 (15.x)SQL Server 2019 (15.x) estende o suporte a caracteres suplementares aos tipos de dados char e varchar com as novas ordenações habilitadas para UTF-8 (_UTF8).extends supplementary character support to the char and varchar data types with the new UTF-8 enabled collations (_UTF8). Esses tipos de dados também podem representar o intervalo completo de caracteres Unicode.These data types are also capable of representing the full Unicode character range.

Observação

No SQL Server 2014 (12.x)SQL Server 2014 (12.x) em diante, todas as novas ordenações da versão _140 automaticamente dão suporte a caracteres suplementares.Starting with SQL Server 2014 (12.x)SQL Server 2014 (12.x), all new _140 collations automatically support supplementary characters.

Se você usar caracteres suplementares:If you use supplementary characters:

  • Caracteres suplementares podem ser usados apenas em operações de comparação e ordenação em versões de ordenação 90 ou superior.Supplementary characters can be used in ordering and comparison operations in collation versions 90 or greater.

  • Todas as ordenações de versão 100 dão suporte à classificação linguística com caracteres suplementares.All version 100 collations support linguistic sorting with supplementary characters.

  • Os caracteres suplementares não são compatíveis para uso em metadados, como em nomes de objetos de banco de dados.Supplementary characters aren't supported for use in metadata, such as in names of database objects.

  • Os bancos de dados que usam ordenações com caracteres suplementares (_SC) não podem ser habilitados para a replicação do SQL ServerSQL Server.Databases that use collations with supplementary characters (_SC) can't be enabled for SQL ServerSQL Server Replication. Isso ocorre porque algumas das tabelas do sistema e alguns dos procedimentos armazenados criados para replicação usam o tipo de dados ntext herdado, que não dá suporte a caracteres suplementares.This is because some of the system tables and stored procedures that are created for replication use the legacy ntext data type, which doesn't support supplementary characters.

  • O sinalizador de SC pode ser aplicado a:The SC flag can be applied to:

    • Ordenações da versão 90Version 90 collations
    • Ordenações da versão 100Version 100 collations
  • O sinalizador de SC não pode ser aplicado a:The SC flag can't be applied to:

    • Ordenações do Windows sem versão na versão 80Version 80 non-versioned Windows collations
    • As ordenações primárias BIN ou BIN2The BIN or BIN2 binary collations
    • As ordenações do SQL*The SQL* collations
    • Ordenações da versão 140 (elas não precisam do sinalizador de SC, pois já dão suporte a caracteres suplementares)Version 140 collations (these don't need the SC flag, because they already support supplementary characters)

A seguinte tabela compara o comportamento de alguns operadores e funções de cadeia de caracteres quando eles usam caracteres suplementares com e sem uma ordenação SCA (reconhecimento de caracteres suplementares):The following table compares the behavior of some string functions and string operators when they use supplementary characters with and without a supplementary character-aware (SCA) collation:

Operador ou função de cadeia de caracteresString function or operator Com uma ordenação de SCAWith an SCA collation Sem uma ordenação de SCAWithout an SCA collation
CHARINDEXCHARINDEX

LENLEN

PATINDEXPATINDEX
O par alternativo UTF-16 é contado como um único ponto de código.The UTF-16 surrogate pair is counted as a single code point. O par alternativo UTF-16 é contado como dois pontos de código.The UTF-16 surrogate pair is counted as two code points.
LEFTLEFT

REPLACEREPLACE

REVERSEREVERSE

RIGHTRIGHT

SUBSTRINGSUBSTRING

STUFFSTUFF
Essas funções tratam cada par alternativo como um único ponto de código e funcionam conforme esperado.These functions treat each surrogate pair as a single code point and work as expected. Essas funções podem dividir qualquer par alternativo e levar a resultados inesperados.These functions might split any surrogate pairs and lead to unexpected results.
NCHARNCHAR Retorna o caractere que corresponde ao valor do ponto de código Unicode especificado no intervalo 0–0x10FFFF.Returns the character that corresponds to the specified Unicode code point value in the range 0–0x10FFFF. Se o valor especificado estiver no intervalo 0–0xFFFF, um caractere será retornado.If the specified value lies in the range 0–0xFFFF, one character is returned. Para valores mais altos, é retornado o substituto correspondente.For higher values, the corresponding surrogate is returned. Um valor mais alto que 0xFFFF retorna NULL, em vez do substituto correspondente.A value higher than 0xFFFF returns NULL instead of the corresponding surrogate.
UNICODEUNICODE Retorna um ponto de código UTF-16 no intervalo 0–0x10FFFF.Returns a UTF-16 code point in the range 0–0x10FFFF. Retorna um ponto de código UCS-2 no intervalo 0–0xFFFF.Returns a UCS-2 code point in the range 0–0xFFFF.
Corresponder a um caractere curingaMatch One Character Wildcard

Curinga – caracter(es) para não corresponderWildcard - Character(s) Not to Match
Há suporte para caracteres suplementares para todas as operações de curingas.Supplementary characters are supported for all wildcard operations. Não há suporte para caracteres suplementares nessas operações de curingas.Supplementary characters aren't supported for these wildcard operations. Há suporte para outros operadores curinga.Other wildcard operators are supported.

Suporte a GB18030GB18030 support

GB18030 é um padrão separado usado na República Popular da China para codificar caracteres chineses.GB18030 is a separate standard that's used in the People's Republic of China for encoding Chinese characters. Em GB18030, caracteres podem ter 1, 2 ou 4 bytes em comprimento.In GB18030, characters can be 1, 2, or 4 bytes in length. OSQL ServerSQL Server oferece suporte a caracteres GB18030 codificados, reconhecendo-os quando eles entram no servidor, provenientes de um aplicativo cliente, convertendo-os e armazenando-os nativamente como caracteres Unicode.SQL ServerSQL Server provides support for GB18030-encoded characters by recognizing them when they enter the server from a client-side application and converting and storing them natively as Unicode characters. Depois de serem armazenados no servidor, eles são tratados como caracteres Unicode em todas as operações seguintes.After they're stored in the server, they're treated as Unicode characters in any subsequent operations.

Você pode usar qualquer ordenação em chinês, preferivelmente a mais recente versão 100.You can use any Chinese collation, preferably the latest 100 version. Todas as ordenações de nível _100 dão suporte à classificação linguística com caracteres GB18030.All _100 level collations support linguistic sorting with GB18030 characters. Se os dados incluírem caracteres suplementares (pares alternativos), você poderá usar as ordenações de SC disponíveis no SQL ServerSQL Server para melhorar a pesquisa e a classificação.If the data includes supplementary characters (surrogate pairs), you can use the SC collations that are available in SQL ServerSQL Server to improve searching and sorting.

Observação

Verifique se as ferramentas de cliente, como SQL Server Management StudioSQL Server Management Studio, usam a fonte Dengxian para exibir corretamente cadeias de caracteres que contêm caracteres codificados em GB18030.Ensure that your client tools, such as SQL Server Management StudioSQL Server Management Studio, use the Dengxian font to correctly display strings that contain GB18030-encoded characters.

Suporte a script complexoComplex script support

OSQL ServerSQL Server oferece suporte à inserção, armazenamento, alteração e exibição de scripts complexos.SQL ServerSQL Server can support inputting, storing, changing, and displaying complex scripts. Scripts complexos incluem os seguintes tipos:Complex scripts include the following types:

  • Scripts que incluem uma combinação de texto da direita para a esquerda e da esquerda para a direita, como uma combinação de texto em árabe e inglês.Scripts that include the combination of both right-to-left and left-to-right text, such as a combination of Arabic and English text.
  • Scripts cujos caracteres alteram de forma de acordo com sua posição ou quando combinados com outros caracteres, como caracteres árabes, índicos e tailandeses.Scripts whose characters change shape depending on their position, or when combined with other characters, such as Arabic, Indic, and Thai characters.
  • Idiomas, como o tailandês, que exigem dicionários internos para reconhecer palavras, porque não há nenhuma quebra entre eles.Languages, such as Thai, that require internal dictionaries to recognize words because there are no breaks between them.

Aplicativos de banco de dados que interagem com o SQL ServerSQL Server devem usar controles que oferecem suporte a scripts complexos.Database applications that interact with SQL ServerSQL Server must use controls that support complex scripts. Os controles de formulário padrão do Windows que são criados em código gerenciado são habilitados para script complexo.Standard Windows form controls that are created in managed code are complex-script-enabled.

Ordenações de japonês adicionadas ao SQL Server 2017 (14.x)SQL Server 2017 (14.x)Japanese collations added in SQL Server 2017 (14.x)SQL Server 2017 (14.x)

No SQL Server 2017 (14.x)SQL Server 2017 (14.x) em diante, há suporte para duas novas famílias de ordenação de japonês, com as permutações de várias opções (_CS, _AS, _KS, _WS e _VSS).Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x), new Japanese collation families are supported, with the permutations of various options (_CS, _AS, _KS, _WS, and _VSS).

Para listar essas ordenações, você pode consultar o Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine:To list these collations, you can query the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine:

SELECT Name, Description FROM fn_helpcollations()  
WHERE Name LIKE 'Japanese_Bushu_Kakusu_140%' OR Name LIKE 'Japanese_XJIS_140%'

Todas as novas ordenações têm suporte interno para caracteres suplementares, de modo que nenhuma das novas ordenações da versão _140 têm (ou precisa de) sinalizador de SC.All the new collations have built-in support for supplementary characters, so none of the new _140 collations has (or needs) the SC flag.

Essas ordenações são compatíveis com índices, tabelas com otimização de memória, índices columnstore e módulos compilados nativamente no Mecanismo de Banco de DadosDatabase Engine.These collations are supported in Mecanismo de Banco de DadosDatabase Engine indexes, memory-optimized tables, columnstore indexes, and natively compiled modules.

Suporte para UTF-8UTF-8 support

O SQL Server 2019 (15.x)SQL Server 2019 (15.x) apresenta suporte completo para a codificação de caracteres UTF-8 amplamente utilizada como codificação de importação ou exportação e como ordenação em nível de coluna ou de banco de dados para dados de cadeia de caracteres.SQL Server 2019 (15.x)SQL Server 2019 (15.x) introduces full support for the widely used UTF-8 character encoding as an import or export encoding, and as database-level or column-level collation for string data. O UTF-8 é permitido nos tipos de dados char e varchar e é habilitado quando você cria ou altera a ordenação de um objeto para um ordenação que tem um sufixo UTF8.UTF-8 is allowed in the char and varchar data types, and it's enabled when you create or change an object's collation to a collation that has a UTF8 suffix. Um exemplo é alterar LATIN1_GENERAL_100_CI_AS_SC para LATIN1_GENERAL_100_CI_AS_SC_UTF8.One example is changing LATIN1_GENERAL_100_CI_AS_SC to LATIN1_GENERAL_100_CI_AS_SC_UTF8.

O UTF-8 só está disponível para ordenações do Windows que dão suporte a caracteres suplementares, conforme introduzido no SQL Server 2012 (11.x)SQL Server 2012 (11.x).UTF-8 is available only to Windows collations that support supplementary characters, as introduced in SQL Server 2012 (11.x)SQL Server 2012 (11.x). Os tipos de dados nchar e nvarchar permitem apenas a codificação UCS-2 ou UTF-16 e permanecem inalterados.The nchar and nvarchar data types allow UCS-2 or UTF-16 encoding only, and they remain unchanged.

Diferenças de armazenamento entre UTF-8 e UTF-16Storage differences between UTF-8 and UTF-16

O Unicode Consortium aloca para cada caractere um ponto de código exclusivo, que é um valor no intervalo 000000–10FFFF.The Unicode Consortium allocates to each character a unique code point, which is a value in the range 000000–10FFFF. Com o SQL Server 2019 (15.x)SQL Server 2019 (15.x), as codificações em UTF-8 e UTF-16 estão disponíveis para representar o intervalo completo:With SQL Server 2019 (15.x)SQL Server 2019 (15.x), both UTF-8 and UTF-16 encodings are available to represent the full range:

  • Com a codificação UTF-8, os caracteres no intervalo do ASCII (000000–00007F) exigem 1 byte, os pontos de código 000080–0007FF exigem 2 bytes, os pontos de código 000800–00FFFF exigem 3 bytes e os pontos de código 0010000–0010FFFF exigem 4 bytes.With UTF-8 encoding, characters in the ASCII range (000000–00007F) require 1 byte, code points 000080–0007FF require 2 bytes, code points 000800–00FFFF require 3 bytes, and code points 0010000–0010FFFF require 4 bytes.
  • Com a codificação UTF-16, os pontos de código 000000–00FFFF exigem 2 bytes e os pontos de código 0010000–0010FFFF exigem 4 bytes.With UTF-16 encoding, code points 000000–00FFFF require 2 bytes, and code points 0010000–0010FFFF require 4 bytes.

A seguinte tabela lista os bytes de armazenamento de codificação para cada intervalo de caracteres e tipo de codificação:The following table lists the encoding storage bytes for each character range and encoding type:

Intervalo de códigos (hexadecimal)Code range (hexadecimal) Intervalo de códigos (decimal)Code range (decimal) Bytes de armazenamento1 com UTF-8Storage bytes1 with UTF-8 Bytes de armazenamento1 com UTF-16Storage bytes1 with UTF-16
000000–00007F000000–00007F 0–1270–127 11 22
000080–00009F000080–00009F
0000A0–0003FF0000A0–0003FF
000400–0007FF000400–0007FF
128–159128–159
160–1.023160–1,023
1.024–2.0471,024–2,047
22 22
000800–003FFF000800–003FFF
004000–00FFFF004000–00FFFF
2.048–16.3832,048–16,383
16.384–65.53516,384–65,535
33 22
010000–03FFFF2010000–03FFFF2

040000–10FFFF2040000–10FFFF2
65.536–262.143265,536–262,1432

262.144–1.114.1112262,144–1,114,1112
44 44

1 Bytes de armazenamento se referem ao tamanho do byte codificado e não ao tamanho do armazenamento em disco do tipo de dados.1 Storage bytes refers to the encoded byte length, not the data-type on-disk storage size. Para saber mais sobre tamanhos de armazenamento em disco, confira os tipos de dados nchar e nvarchar e char e varchar.For more information about on-disk storage sizes, see nchar and nvarchar and char and varchar.

2 O intervalo do ponto de código para caracteres suplementares.2 The code point range for supplementary characters.

Dica

É comum pensar, em CHAR(n) e VARCHAR(n) ou em NCHAR(n) e NVARCHAR(n), que ndefine o número de caracteres.It's common to think, in CHAR(n) and VARCHAR(n) or in NCHAR(n) and NVARCHAR(n), that n defines the number of characters. Isso ocorre porque, no exemplo de uma coluna CHAR(10), 10 caracteres ASCII no intervalo 0–127 podem ser armazenados usando uma ordenação como Latin1_General_100_CI_AI, porque cada caractere desse intervalo usa apenas 1 byte.This is because, in the example of a CHAR(10) column, 10 ASCII characters in the range 0–127 can be stored by using a collation such as Latin1_General_100_CI_AI, because each character in this range uses only 1 byte.

No entanto, em CHAR(n) e VARCHAR(n), n define o tamanho da cadeia de caracteres em bytes (0–8.000), e em NCHAR(n) e NVARCHAR(n), n define o tamanho da cadeia de caracteres em pares de bytes (0–4.000).However, in CHAR(n) and VARCHAR(n), n defines the string size in bytes (0–8,000), and in NCHAR(n) and NVARCHAR(n), n defines the string size in byte-pairs (0–4,000). n nunca define números de caracteres que podem ser armazenados.n never defines numbers of characters that can be stored.

Como você acabou de ver, a escolha do tipo de dados e da codificação Unicode apropriados pode proporcionar uma economia significativa de armazenamento ou aumentar o volume de armazenamento atual, dependendo do conjunto de caracteres em uso.As you've just seen, choosing the appropriate Unicode encoding and data type might give you significant storage savings or increase your current storage footprint, depending on the character set in use. Por exemplo, quando você usa uma ordenação de latim que é habilitada para UTF-8, como Latin1_General_100_CI_AI_SC_UTF8, uma coluna CHAR(10) armazena 10 bytes e pode conter 10 caracteres ASCII no intervalo 0–127.For example, when you use a Latin collation that's UTF-8 enabled, such as Latin1_General_100_CI_AI_SC_UTF8, a CHAR(10) column stores 10 bytes and can hold 10 ASCII characters in the range 0–127. No entanto, ela pode conter apenas cinco caracteres no intervalo de 128–2.047 e apenas três caracteres no intervalo de 2.048–65.535.But it can hold only 5 characters in the range 128–2047 and only 3 characters in the range 2048–65535. Por comparação, como uma coluna NCHAR(10) armazena 10 pares de bytes (20 bytes), ela pode armazenar 10 caracteres no intervalo de 0–65.535.By comparison, because a NCHAR(10) column stores 10 byte-pairs (20 bytes), it can hold 10 characters in the range 0–65535.

Antes de optar por usar a codificação UTF-8 ou UTF-16 para um banco de dados ou uma coluna, considere a distribuição dos dados de cadeia de caracteres que serão armazenados:Before you choose whether to use UTF-8 or UTF-16 encoding for a database or column, consider the distribution of string data that will be stored:

  • Se a maioria estiver no intervalo 0–127 do ASCII (como o inglês), cada caractere exigirá 1 byte com UTF-8 e 2 bytes com UTF-16.If it's mostly in the ASCII range 0–127 (such as English), each character requires 1 byte with UTF-8 and 2 bytes with UTF-16. O uso de UTF-8 proporciona vantagens de armazenamento.Using UTF-8 provides storage benefits. A alteração de um tipo de dados de coluna existente com caracteres ASCII no intervalo 0–127 de NCHAR(10) para CHAR(10) e o uso de uma ordenação habilitada para UTF-8 representam 50% de redução nos requisitos de armazenamento.Changing an existing column data type with ASCII characters in the range 0–127 from NCHAR(10) to CHAR(10), and using an UTF-8 enabled collation, translates into a 50 percent reduction in storage requirements. Essa redução ocorre porque NCHAR(10) exige 20 bytes para armazenamento, em comparação com CHAR(10), que exige 10 bytes para a mesma representação de cadeia de caracteres Unicode.This reduction is because NCHAR(10) requires 20 bytes for storage, compared with CHAR(10), which requires 10 bytes for the same Unicode string representation.
  • Acima do intervalo do ASCII, quase todos os scripts com base latina, além do grego, cirílico, copta, armênio, hebraico, árabe, siríaco, tāna e n'ko, exigem 2 bytes por caractere em UTF-8 e UTF-16.Above the ASCII range, almost all Latin-based script, and Greek, Cyrillic, Coptic, Armenian, Hebrew, Arabic, Syriac, Tāna, and N’Ko, require 2 bytes per character in both UTF-8 and UTF-16. Nesses casos, não há diferenças significativas de armazenamento para tipos de dados comparáveis (por exemplo, entre o uso de char ou nchar).In these cases, there aren't significant storage differences for comparable data types (for example, between using char or nchar).
  • Se a maioria for de scripts do Leste Asiático (como coreano, chinês e japonês), cada caractere exigirá 3 bytes com UTF-8 e 2 bytes com UTF-16.If it's mostly East Asian script (such as Korean, Chinese, and Japanese), each character requires 3 bytes with UTF-8 and 2 bytes with UTF-16. O uso de UTF-16 proporciona vantagens de armazenamento.Using UTF-16 provides storage benefits.
  • Os caracteres no intervalo de 010000–10FFFF exigem 4 bytes tanto em UTF-8 quanto em UTF-16.Characters in the range 010000–10FFFF require 4 bytes in both UTF-8 and UTF-16. Nesses casos, não há diferenças de armazenamento para tipos de dados comparáveis (por exemplo, entre o uso de char ou nchar).In these cases, there aren't storage differences for comparable data types (for example, between using char or nchar).

Para ver outras considerações, confira o artigo Gravar instruções Transact-SQL internacionais.For other considerations, see Write International Transact-SQL Statements.

TarefaTask TópicoTopic
Descreve como definir ou alterar a ordenação da instância do SQL ServerDescribes how to set or change the collation of the instance of SQL Server Definir ou alterar a ordenação do servidorSet or Change the Server Collation
Descreve como definir ou alterar a ordenação de um banco de dados de usuárioDescribes how to set or change the collation of a user database Definir ou alterar a ordenação de banco de dadosSet or Change the Database Collation
Descreve como definir ou alterar a ordenação de uma coluna no banco de dadosDescribes how to set or change the collation of a column in the database Definir ou alterar a ordenação de colunaSet or Change the Column Collation
Descreve como retornar informações de ordenação no nível de servidor, de banco de dados ou de colunaDescribes how to return collation information at the server, database, or column level Exibir informações de ordenaçãoView Collation Information
Descreve como escrever instruções Transact-SQL que tenham mais portabilidade de um idioma para outro ou que deem suporte a vários idiomas com mais facilidadeDescribes how to write Transact-SQL statements that are more portable from one language to another, or support multiple languages more easily Gravar instruções Transact-SQL internacionaisWrite International Transact-SQL Statements
Descreve como alterar o idioma de mensagens de erro e preferências de como a data, a hora e os dados de moeda são usados e exibidosDescribes how to change the language of error messages and preferences for how date, time, and currency data is used and displayed Definir um idioma de sessãoSet a Session Language

Para obter mais informações, confira o seguinte conteúdo relacionado:For more information, see the following related content:

Confira tambémSee also

Ordenações de banco de dados independentes Contained Database Collations
Escolher um idioma ao criar um índice de texto completo Choose a Language When Creating a Full-Text Index
sys.fn_helpcollations (Transact-SQL)sys.fn_helpcollations (Transact-SQL)