Compatibilidad con la intercalación y UnicodeCollation and Unicode support

SE APLICA A: síSQL Server síAzure SQL Database síAzure Synapse Analytics (SQL DW) síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Las intercalaciones de SQL ServerSQL Server proporcionan propiedades de distinción entre mayúsculas y minúsculas, acentos y reglas de ordenación para los datos.Collations in SQL ServerSQL Server provide sorting rules, case, and accent sensitivity properties for your data. Las intercalaciones que se usan con tipos de datos de caracteres, como char y varchar, dictan la página de códigos y los caracteres correspondientes que se pueden representar para ese tipo de datos.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.

Si va a instalar una instancia nueva de SQL ServerSQL Server, restaurar una copia de seguridad de la base de datos o conectar el servidor a bases de datos cliente, es importante conocer los requisitos de configuración regional, el criterio de ordenación y la distinción entre mayúsculas y minúsculas, y acentos de los datos con los que se trabaja.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 obtener una lista de las intercalaciones disponibles en la instancia de SQL ServerSQL Server, vea 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).

Al seleccionar una intercalación para el servidor, base de datos, columna o expresión, se asignan ciertas características a los datos.When you select a collation for your server, database, column, or expression, you're assigning certain characteristics to your data. Estas características afectan a los resultados de muchas operaciones de la base de datos.These characteristics affect the results of many operations in the database. Por ejemplo, cuando se crea una consulta con ORDER BY, es posible que el criterio de ordenación del conjunto de resultados dependa de la intercalación que se aplica a la base de datos o que se dicta en una cláusula COLLATE en el nivel de expresión de la 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 hacer el mejor uso posible de la compatibilidad con la intercalación en SQL ServerSQL Server, se deben conocer los términos que se definen en este tema y cómo se relacionan con las características de los datos.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.

Términos de intercalaciónCollation terms

IntercalaciónCollation

Una intercalación especifica los patrones de bits que representan a cada carácter de un conjunto de datos.A collation specifies the bit patterns that represent each character in a dataset. Las intercalaciones también determinan las reglas que ordenan y comparan los datos.Collations also determine the rules that sort and compare data. SQL ServerSQL Server permite almacenar los objetos que tienen intercalaciones diferentes en una sola base de datos.supports storing objects that have different collations in a single database. En las columnas que no sean Unicode, la configuración de intercalación especifica la página de códigos de los datos y qué caracteres se pueden representar.For non-Unicode columns, the collation setting specifies the code page for the data and which characters can be represented. Los datos que se mueven entre columnas que no sean Unicode se deben convertir de la página de códigos de origen a la de destino.The data that you move between non-Unicode columns must be converted from the source code page to the destination code page.

Los resultados de las instrucciones deTransact-SQLTransact-SQL pueden variar cuando se ejecutan en el contexto de bases de datos distintas que tengan una configuración de intercalación diferente.Transact-SQLTransact-SQL statement results can vary when the statement is run in the context of different databases that have different collation settings. Si es posible, use una intercalación normalizada para su organización.If possible, use a standardized collation for your organization. De esta manera no tiene que especificar la intercalación en todos los caracteres o expresiones Unicode.This way, you don't have to specify the collation in every character or Unicode expression. Si debe trabajar con objetos que tienen configuraciones de intercalación y de página de códigos diferentes, conviene codificar las consultas para tener en cuenta las reglas de prioridad de intercalación.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 obtener más información, vea Prioridad de intercalación (Transact-SQL).For more information, see Collation Precedence (Transact-SQL).

Las opciones asociadas con una intercalación son la distinción de mayúsculas y minúsculas, la distinción de acentos, la distinción de kana, la distinción de ancho y la distinción de selector de variación.The options associated with a collation are case sensitivity, accent sensitivity, kana sensitivity, width sensitivity, and variation-selector sensitivity. SQL Server 2019 (15.x)SQL Server 2019 (15.x) presenta una opción adicional para la codificación UTF-8.introduces an additional option for UTF-8 encoding.

Para especificar estas opciones se anexan al nombre de la intercalación.You can specify these options by appending them to the collation name. Por ejemplo, la intercalación Japanese_Bushu_Kakusu_100_CS_AS_KS_WS_UTF8 es una intercalación con distinción entre mayúsculas y minúsculas, distinción de acentos, distinción de tipos de kana, distinción de ancho y con codificación 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. Otro ejemplo: la intercalación Japanese_Bushu_Kakusu_140_CI_AI_KS_WS_VSS no distingue entre mayúsculas y minúsculas ni acentos, distingue los tipos de kana, el ancho, el selector de variación y usa codificación distinta de 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.

El comportamiento asociado a estas diversas opciones se describe en la tabla siguiente:The behavior associated with these various options is described in the following table:

OpciónOption DescripciónDescription
Distinguir mayúsculas de minúsculas (_CS)Case-sensitive (_CS) Distingue entre letras mayúsculas y minúsculas.Distinguishes between uppercase and lowercase letters. Si se selecciona esta opción, las letras minúsculas se ordenan por delante de sus versiones en mayúsculas.If this option is selected, lowercase letters sort ahead of their uppercase versions. Si esta opción no está seleccionada, la intercalación no distinguirá mayúsculas de minúsculas.If this option isn't selected, the collation is case-insensitive. Es decir, SQL ServerSQL Server considera las versiones mayúscula y minúscula de las letras como letras idénticas a efectos de ordenación.That is, SQL ServerSQL Server considers the uppercase and lowercase versions of letters to be identical for sorting purposes. Puede seleccionar explícitamente no distinguir entre mayúsculas y minúsculas especificando _CI.You can explicitly select case insensitivity by specifying _CI.
Distinguir acentos (_AS)Accent-sensitive (_AS) Distingue entre caracteres acentuados y no acentuados.Distinguishes between accented and unaccented characters. Por ejemplo, "a" no es igual a "ấ".For example, "a" is not equal to "ấ". Si esta opción no está seleccionada, la intercalación no distinguirá los acentos.If this option isn't selected, the collation is accent-insensitive. Es decir, SQL ServerSQL Server considera las versiones acentuadas y no acentuadas de las letras como letras idénticas a efectos de ordenación.That is, SQL ServerSQL Server considers the accented and unaccented versions of letters to be identical for sorting purposes. Puede seleccionar explícitamente no distinguir acentos especificando _AI.You can explicitly select accent insensitivity by specifying _AI.
Distinguir kana (_KS)Kana-sensitive (_KS) Distingue entre dos tipos de caracteres kana japoneses: Hiragana y Katakana.Distinguishes between the two types of Japanese kana characters: Hiragana and Katakana. Si esta opción no está seleccionada, la intercalación no distinguirá los caracteres kana.If this option isn't selected, the collation is kana-insensitive. Es decir, SQL ServerSQL Server considera los caracteres Hiragana y Katakana como caracteres iguales a efectos de ordenación.That is, SQL ServerSQL Server considers Hiragana and Katakana characters to be equal for sorting purposes. La omisión de esta opción es el único método para especificar que no se distinguen los caracteres kana.Omitting this option is the only method of specifying kana-insensitivity.
Distinguir ancho (_WS)Width-sensitive (_WS) Distingue entre caracteres de ancho total y ancho medio.Distinguishes between full-width and half-width characters. Si no se selecciona esta opción, SQL ServerSQL Server considera que la representación de ancho completo y de ancho medio del mismo carácter son idénticas con fines de ordenación.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. La omisión de esta opción es el único método para especificar no distinción de ancho.Omitting this option is the only method of specifying width-insensitivity.
Distinguir selector de variación (_VSS)Variation-selector-sensitive (_VSS) Distingue entre varios selectores de variación ideográfica en las intercalaciones del japonés Japanese_Bushu_Kakusu_140 y Japanese_XJIS_140, introducidas en 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). Una secuencia de variación consta de un carácter base y de un selector de variación adicional.A variation sequence consists of a base character plus an additional variation selector. Si no se selecciona esta opción _VSS, la intercalación no distinguirá el selector de variación y este no se tendrá en cuenta en la comparación.If this _VSS option isn't selected, the collation is variation-selector-insensitive, and the variation selector isn't considered in the comparison. Es decir, SQL ServerSQL Server considera que los caracteres que se basan en el mismo carácter base con diferentes selectores de variación son idénticos con fines de ordenación.That is, SQL ServerSQL Server considers characters built upon the same base character with differing variation selectors to be identical for sorting purposes. Para más información, vea Unicode Ideographic Variation Database (Base de datos de variaciones ideográficas de Unicode).For more information, see Unicode Ideographic Variation Database.

Las intercalaciones que distinguen selectores de variación (_VSS) no se admiten en los índices de búsqueda de texto completo.Variation-selector-sensitive (_VSS) collations aren't supported in full-text search indexes. Los índices de búsqueda de texto completo solo admiten opciones que distinguen acentos (_AS), que distinguen kana (_KS) y que distinguen ancho (_WS).Full-text search indexes support only Accent-Sensitive (_AS), Kana-sensitive (_KS), and Width-sensitive (_WS) options. Los motores XML y CLR de SQL ServerSQL Server no admiten selectores de variación (_VSS).SQL ServerSQL Server XML and CLR engines don't support (_VSS) Variation selectors.
Binario (_BIN)1Binary (_BIN)1 Ordena y compara datos de las tablas de SQL ServerSQL Server basándose en los patrones de bits definidos para cada carácter.Sorts and compares data in SQL ServerSQL Server tables based on the bit patterns defined for each character. El orden binario distingue entre mayúsculas y minúsculas, y acentos.Binary sort order is case-sensitive and accent-sensitive. El orden binario es también el más rápido.Binary is also the fastest sorting order. Para más información, vea la sección Intercalaciones binarias de este artículo.For more information, see the Binary collations section in this article.
Punto de código binario (_BIN2)1Binary-code point (_BIN2)1 Ordena y compara datos de las tablas de SQL ServerSQL Server según los puntos de código Unicode de datos Unicode.Sorts and compares data in SQL ServerSQL Server tables based on Unicode code points for Unicode data. Para los datos que no son Unicode, el punto de código binario usa comparaciones idénticas a las de las ordenaciones binarias.For non-Unicode data, Binary-code point uses comparisons that are identical to those for binary sorts.

La ventaja de usar un criterio de ordenación de punto de código binario es que no es necesaria ninguna reordenación de los datos en aplicaciones que comparan los datos de SQL ServerSQL Server ordenados.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. Por consiguiente, el criterio de ordenación de punto de código binario proporciona un desarrollo más simple de las aplicaciones y posibles aumentos en el rendimiento.As a result, a Binary-code point sort order provides simpler application development and possible performance increases. Para más información, vea la sección Intercalaciones binarias de este artículo.For more information, see the Binary collations section in this article.
UTF-8 (_UTF8)UTF-8 (_UTF8) Permite que los datos con codificación UTF-8 se almacenen en SQL ServerSQL Server.Enables UTF-8 encoded data to be stored in SQL ServerSQL Server. Si no se selecciona esta opción, SQL ServerSQL Server usa el formato de codificación distinto de Unicode predeterminado para los tipos de datos aplicables.If this option isn't selected, SQL ServerSQL Server uses the default non-Unicode encoding format for the applicable data types. Para más información, vea la sección Compatibilidad con UTF-8 de este artículo.For more information, see the UTF-8 Support section in this article.

1 Si están seleccionadas las opciones Binario o Punto de código binario, las opciones Distinguir mayúsculas de minúsculas (_CS), Distinguir acentos (_AS), Distinguir kana (_KS) y Distinguir ancho (_WS) no estarán disponibles.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.

Ejemplos de opciones de intercalaciónExamples of collation options

Cada intercalación se combina como una serie de sufijos para definir la distinción entre mayúsculas y minúsculas, acentos, ancho o kana.Each collation is combined as a series of suffixes to define case-, accent-, width-, or kana-sensitivity. En estos ejemplos se describe el comportamiento del criterio de ordenación de diversas combinaciones de sufijos.The following examples describe sort order behavior for various combinations of suffixes.

Sufijo de intercalación de WindowsWindows collation suffix Descripción del ordenSort order description
_BIN1_BIN1 Orden binarioBinary sort
_BIN21, 2_BIN21, 2 Criterio de ordenación Punto de código binarioBinary-code point sort order
_CI_AI2_CI_AI2 No distingue mayúsculas de minúsculas, ni acentos, ni kana, ni ancho.Case-insensitive, accent-insensitive, kana-insensitive, width-insensitive
_CI_AI_KS2_CI_AI_KS2 No distingue mayúsculas de minúsculas, ni acentos, ni ancho pero sí distingue Kana.Case-insensitive, accent-insensitive, kana-sensitive, width-insensitive
_CI_AI_KS_WS2_CI_AI_KS_WS2 No distingue mayúsculas de minúsculas, ni acentos, pero sí distingue Kana y ancho.Case-insensitive, accent-insensitive, kana-sensitive, width-sensitive
_CI_AI_WS2_CI_AI_WS2 No distingue mayúsculas de minúsculas, ni acentos, ni Kana pero sí distingue ancho.Case-insensitive, accent-insensitive, kana-insensitive, width-sensitive
_CI_AS2_CI_AS2 No distingue mayúsculas de minúsculas, ni Kana ni ancho, pero sí acentos.Case-insensitive, accent-sensitive, kana-insensitive, width-insensitive
_CI_AS_KS2_CI_AS_KS2 No distingue mayúsculas de minúsculas, ni ancho, pero sí acentos y Kana.Case-insensitive, accent-sensitive, kana-sensitive, width-insensitive
_CI_AS_KS_WS2_CI_AS_KS_WS2 No distingue mayúsculas de minúsculas, pero sí distingue acentos, Kana y ancho.Case-insensitive, accent-sensitive, kana-sensitive, width-sensitive
_CI_AS_WS2_CI_AS_WS2 No distingue entre mayúsculas y minúsculas, ni Kana, pero sí acentos y ancho.Case-insensitive, accent-sensitive, kana-insensitive, width-sensitive
_CS_AI2_CS_AI2 Distingue mayúsculas de minúsculas, pero no distingue acentos, ni Kana, ni ancho.Case-sensitive, accent-insensitive, kana-insensitive, width-insensitive
_CS_AI_KS2_CS_AI_KS2 Distingue mayúsculas de minúsculas y Kana, pero no distingue acentos ni ancho.Case-sensitive, accent-insensitive, kana-sensitive, width-insensitive
_CS_AI_KS_WS2_CS_AI_KS_WS2 Distingue mayúsculas de minúsculas, Kana y ancho, pero no distingue acentos.Case-sensitive, accent-insensitive, kana-sensitive, width-sensitive
_CS_AI_WS2_CS_AI_WS2 Distingue mayúsculas de minúsculas y ancho, pero no distingue Kana ni acentos.Case-sensitive, accent-insensitive, kana-insensitive, width-sensitive
_CS_AS2_CS_AS2 Distingue mayúsculas de minúsculas y acentos, pero no distingue Kana ni ancho.Case-sensitive, accent-sensitive, kana-insensitive, width-insensitive
_CS_AS_KS2_CS_AS_KS2 Distingue mayúsculas de minúsculas, acento y Kana, pero no distingue ancho.Case-sensitive, accent-sensitive, kana-sensitive, width-insensitive
_CS_AS_KS_WS2_CS_AS_KS_WS2 Distingue mayúsculas de minúsculas, acentos, Kana y ancho.Case-sensitive, accent-sensitive, kana-sensitive, width-sensitive
_CS_AS_WS2_CS_AS_WS2 Distingue mayúsculas de minúsculas, acentos y ancho, pero no distingue Kana.Case-sensitive, accent-sensitive, kana-insensitive, width-sensitive

1 Si están seleccionadas las opciones Binario o Punto de código binario, las opciones Distinguir mayúsculas de minúsculas (_CS), Distinguir acentos (_AS), Distinguir kana (_KS) y Distinguir ancho (_WS) no estarán disponibles.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 La adición de la opción UTF-8 (_UTF8) permite codificar datos Unicode mediante UTF-8.2 Adding the UTF-8 option (_UTF8) enables you to encode Unicode data by using UTF-8. Para más información, vea la sección Compatibilidad con UTF-8 de este artículo.For more information, see the UTF-8 Support section in this article.

Conjuntos de intercalaciónCollation sets

SQL ServerSQL Server admite los siguientes conjuntos de intercalación:supports the following collation sets:

Intercalaciones de WindowsWindows collations

Las intercalaciones de Windows definen reglas para almacenar los datos de caracteres que se basan en una configuración regional del sistema Windows asociada.Windows collations define rules for storing character data that's based on an associated Windows system locale. En una intercalación de Windows, se puede implementar una comparación de datos no Unicode con el mismo algoritmo que la de los datos Unicode.For a Windows collation, you can implement a comparison of non-Unicode data by using the same algorithm as that for Unicode data. Las reglas de intercalación básicas de Windows especifican qué alfabeto o idioma se usa cuando se aplica una ordenación de diccionario.The base Windows collation rules specify which alphabet or language is used when dictionary sorting is applied. Las reglas también especifican la página de códigos que se usa para almacenar los datos de caracteres que no son Unicode.The rules also specify the code page that's used to store non-Unicode character data. Tanto la ordenación Unicode y como la ordenación no Unicode son compatibles con comparaciones de cadenas de una determinada versión de Windows.Both Unicode and non-Unicode sorting are compatible with string comparisons in a particular version of Windows. Esto proporciona coherencia entre los tipos de datos de SQL ServerSQL Server y permite a los desarrolladores ordenar las cadenas de sus aplicaciones mediante las mismas reglas que usa 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 más información, vea Nombre de intercalación de Windows (Transact-SQL).For more information, see Windows Collation Name (Transact-SQL).

Intercalaciones binariasBinary collations

Las intercalaciones binarias ordenan los datos según la secuencia de valores codificados definidos por la configuración regional y el tipo de datos.Binary collations sort data based on the sequence of coded values that are defined by the locale and data type. Distinguen mayúsculas de minúsculasThey're case-sensitive. Una intercalación binaria de SQL ServerSQL Server define la configuración regional y la página de códigos ANSI que se usa.A binary collation in SQL ServerSQL Server defines the locale and the ANSI code page that's used. Esto exige un criterio de ordenación binario.This enforces a binary sort order. Como son relativamente simples, las intercalaciones binarias ayudan a mejorar el rendimiento de la aplicación.Because they're relatively simple, binary collations help improve application performance. En los tipos de datos que no son Unicode, las comparaciones de datos se basan en los puntos de código que se definen en la página de códigos ANSI.For non-Unicode data types, data comparisons are based on the code points that are defined on the ANSI code page. En tipos de datos Unicode, las comparaciones de datos dependen de los puntos de código Unicode.For Unicode data types, data comparisons are based on the Unicode code points. En las intercalaciones binarias de tipos de datos Unicode, la configuración regional no se tiene en cuenta a la hora de ordenar los datos.For binary collations on Unicode data types, the locale isn't considered in data sorts. Por ejemplo, Latin_1_General_BIN y Japanese_BIN generan resultados de orden idénticos cuando se usan en datos Unicode.For example, Latin_1_General_BIN and Japanese_BIN yield identical sorting results when they're used on Unicode data. Para más información, vea Nombre de intercalación de Windows (Transact-SQL).For more information, see Windows Collation Name (Transact-SQL).

Hay dos tipos de intercalaciones binarias en SQL ServerSQL Server:There are two types of binary collations in SQL ServerSQL Server:

  • Las intercalaciones BIN heredadas, que han realizado una comparación de punto de código a punto de código incompleta para los datos Unicode.The legacy BIN collations, which performed an incomplete code-point-to-code-point comparison for Unicode data. Estas intercalaciones binarias heredadas comparaban el primer carácter como WCHAR, seguido de una comparación byte a byte.These legacy binary collations compared the first character as WCHAR, followed by a byte-by-byte comparison. En una intercalación BIN solo el primer carácter se ordena de acuerdo al punto de código y el resto de ellos se ordenan según sus valores de byte.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.

  • Las intercalaciones BIN2 más recientes, que implementan una comparación pura de punto de código.The newer BIN2 collations, which implement a pure code-point comparison. En una intercalación BIN2 todos los caracteres se ordenan de acuerdo a sus puntos de código.In a BIN2 collation, all characters are sorted according to their code points. Como la plataforma de Intel tiene una arquitectura "little endian", los caracteres de codificación Unicode siempre se intercambian por bytes.Because the Intel platform is a little endian architecture, Unicode code characters are always stored byte-swapped.

Intercalaciones de SQL ServerSQL Server collations

Las intercalaciones de SQL ServerSQL Server (SQL_*) son compatibles en cuanto al criterio de ordenación con las versiones anteriores de SQL ServerSQL Server.SQL ServerSQL Server collations (SQL_*) provide sort order compatibility with earlier versions of SQL ServerSQL Server. Las reglas de ordenación de diccionario para datos que no son Unicode son incompatibles con cualquier rutina de ordenación suministrada por los sistemas operativos Windows.The dictionary sorting rules for non-Unicode data are incompatible with any sorting routine that's provided by Windows operating systems. Sin embargo, la ordenación de datos Unicode es compatible con una versión especial de las reglas de ordenación de Windows.However, sorting Unicode data is compatible with a particular version of Windows sorting rules. Como las intercalaciones de SQL ServerSQL Server usan reglas de comparación diferentes para los datos Unicode y para los que no son Unicode, ve resultados diferentes en las comparaciones de los mismos datos, dependiendo del tipo de datos subyacente.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 más información, vea Nombre de intercalación de SQL Server (Transact-SQL).For more information, see SQL Server Collation Name (Transact-SQL).

Durante la configuración de SQL ServerSQL Server, la opción de intercalación de instalación predeterminada viene determinada por la configuración regional del sistema operativo (SO).During SQL ServerSQL Server setup, the default installation collation setting is determined by the operating system (OS) locale. Puede cambiar las intercalaciones de nivel de servidor durante la instalación o si modifica la configuración regional del SO antes de la instalación.You can change the server-level collation either during setup or by changing the OS locale before installation. Para la compatibilidad con versiones anteriores, la intercalación predeterminada se establece en la versión más antigua disponible que esté asociada a cada configuración regional concreta.For backward compatibility reasons, the default collation is set to the oldest available version that's associated with each specific locale. Por tanto, esta no es siempre la intercalación recomendada.Therefore, this isn't always the recommended collation. Para aprovechar al máximo las características de SQL ServerSQL Server, cambie la configuración de instalación predeterminada para que use las intercalaciones de Windows.To take full advantage of SQL ServerSQL Server features, change the default installation settings to use Windows collations. Por ejemplo, para la configuración regional del sistema operativo "Inglés (Estados Unidos)" (página de códigos 1252), la intercalación predeterminada durante la instalación es SQL_Latin1_General_CP1_CI_AS y se puede cambiar a la intercalación de Windows homóloga más cercana, 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.

Nota

Al actualizar una instancia en idioma inglés de SQL ServerSQL Server, se pueden especificar intercalaciones de SQL ServerSQL Server (SQL_*) para la compatibilidad con las instancias existentes de 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 la intercalación predeterminada de una instancia de SQL ServerSQL Server se define durante la instalación, asegúrese de especificar con cuidado la configuración de la intercalación cuando se cumplan las condiciones siguientes: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:

  • El código de la aplicación depende del comportamiento de las intercalaciones de SQL ServerSQL Server anteriores.Your application code depends on the behavior of previous SQL ServerSQL Server collations.
  • Se deben almacenar datos de caracteres que reflejen varios idiomas.You must store character data that reflects multiple languages.

Niveles de intercalaciónCollation levels

Se admite el establecimiento de intercalaciones en los siguientes niveles de una instancia de SQL ServerSQL Server:Setting collations are supported at the following levels of an instance of SQL ServerSQL Server:

Intercalaciones de nivel de servidorServer-level collations

La intercalación predeterminada de servidor se determina durante la instalación de SQL ServerSQL Server y se convierte en la intercalación predeterminada de las bases de datos del sistema y de todas las bases de datos del usuario.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.

En la tabla siguiente se muestran las designaciones predeterminadas de intercalación, determinadas por la configuración regional del sistema operativo (SO), incluidos los respectivos identificadores de código de idioma (LCID) de Windows y 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):

Configuración regional de WindowsWindows locale LCID de WindowsWindows LCID LCID de SQLSQL LCID Intercalación predeterminadaDefault collation
Afrikáans (Sudáfrica)Afrikaans (South Africa) 0x04360x0436 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Albanés (Albania)Albanian (Albania) 0x041c0x041c 0x041c0x041c Albanian_CI_ASAlbanian_CI_AS
Alsaciano (Francia)Alsatian (France) 0x04840x0484 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Amárico (Etiopía)Amharic (Ethiopia) 0x045e0x045e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Árabe (Argelia)Arabic (Algeria) 0x14010x1401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Bahréin)Arabic (Bahrain) 0x3c010x3c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Egipto)Arabic (Egypt) 0x0c010x0c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Iraq)Arabic (Iraq) 0x08010x0801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Jordania)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 (Libia)Arabic (Libya) 0x10010x1001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Marruecos)Arabic (Morocco) 0x18010x1801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Omán)Arabic (Oman) 0x20010x2001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Qatar)Arabic (Qatar) 0x40010x4001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Arabia Saudí)Arabic (Saudi Arabia) 0x04010x0401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Siria)Arabic (Syria) 0x28010x2801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Túnez)Arabic (Tunisia) 0x1c010x1c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (E. A. U.)Arabic (U.A.E.) 0x38010x3801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Árabe (Yemen)Arabic (Yemen) 0x24010x2401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Armenio (Armenia)Armenian (Armenia) 0x042b0x042b 0x04190x0419 Latin1_General_CI_ASLatin1_General_CI_AS
Asamés (India)Assamese (India) 0x044d0x044d 0x044d0x044d No disponible en el nivel de servidorNot available at server level
Azerí (cirílico, Azerbaiyán)Azeri (Azerbaijan, Cyrillic) 0x082c0x082c 0x082c0x082c Obsoleta, no disponible en el nivel de servidorDeprecated, not available at server level
Azerí (Azerbaiyán, alfabeto latino)Azeri (Azerbaijan, Latin) 0x042c0x042c 0x042c0x042c Obsoleta, no disponible en el nivel de servidorDeprecated, not available at server level
Baskir (Rusia)Bashkir (Russia) 0x046d0x046d 0x046d0x046d Latin1_General_CI_AILatin1_General_CI_AI
Vasco (España)Basque (Basque) 0x042d0x042d 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Bielorruso (Bielorrusia)Belarusian (Belarus) 0x04230x0423 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Bengalí (Bangladés)Bengali (Bangladesh) 0x08450x0845 0x04450x0445 No disponible en el nivel de servidorNot available at server level
Bengali (India)Bengali (India) 0x04450x0445 0x04390x0439 No disponible en el nivel de servidorNot available at server level
Bosnio (cirílico, Bosnia-Herzegovina)Bosnian (Bosnia and Herzegovina, Cyrillic) 0x201a0x201a 0x201a0x201a Latin1_General_CI_AILatin1_General_CI_AI
Bosnio (latino, Bosnia-Herzegovina)Bosnian (Bosnia and Herzegovina, Latin) 0x141a0x141a 0x141a0x141a Latin1_General_CI_AILatin1_General_CI_AI
Bretón (Francia)Breton (France) 0x047e0x047e 0x047e0x047e Latin1_General_CI_AILatin1_General_CI_AI
Búlgaro (Bulgaria)Bulgarian (Bulgaria) 0x04020x0402 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Catalán (España)Catalan (Catalan) 0x04030x0403 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Chino (Hong Kong ZAE, 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
Chino (Macao)Chinese (Macau) 0x214040x21404 0x214040x21404 Latin1_General_CI_AILatin1_General_CI_AI
Chino (RPC)Chinese (PRC) 0x08040x0804 0x08040x0804 Chinese_PRC_CI_ASChinese_PRC_CI_AS
Chino (RPC)Chinese (PRC) 0x208040x20804 0x208040x20804 Chinese_PRC_Stroke_CI_ASChinese_PRC_Stroke_CI_AS
Chinese (Singapore)Chinese (Singapore) 0x10040x1004 0x08040x0804 Chinese_PRC_CI_ASChinese_PRC_CI_AS
Chinese (Singapore)Chinese (Singapore) 0x210040x21004 0x208040x20804 Chinese_PRC_Stroke_CI_ASChinese_PRC_Stroke_CI_AS
Chino (Taiwán)Chinese (Taiwan) 0x304040x30404 0x304040x30404 Chinese_Taiwan_Bopomofo_CI_ASChinese_Taiwan_Bopomofo_CI_AS
Chino (Taiwán)Chinese (Taiwan) 0x04040x0404 0x04040x0404 Chinese_Taiwan_Stroke_CI_ASChinese_Taiwan_Stroke_CI_AS
Corso (Francia)Corsican (France) 0x04830x0483 0x04830x0483 Latin1_General_CI_AILatin1_General_CI_AI
Croata (Bosnia y Herzegovina, latino)Croatian (Bosnia and Herzegovina, Latin) 0x101a0x101a 0x041a0x041a Croatian_CI_ASCroatian_CI_AS
Croata (Croacia)Croatian (Croatia) 0x041a0x041a 0x041a0x041a Croatian_CI_ASCroatian_CI_AS
Checo (República Checa)Czech (Czech Republic) 0x04050x0405 0x04050x0405 Czech_CI_ASCzech_CI_AS
Danés (Dinamarca)Danish (Denmark) 0x04060x0406 0x04060x0406 Danish_Norwegian_CI_ASDanish_Norwegian_CI_AS
Dari (Afganistán)Dari (Afghanistan) 0x048c0x048c 0x048c0x048c Latin1_General_CI_AILatin1_General_CI_AI
Divehi (Maldivas)Divehi (Maldives) 0x04650x0465 0x04650x0465 No disponible en el nivel de servidorNot available at server level
Neerlandés (Bélgica)Dutch (Belgium) 0x08130x0813 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Neerlandés (Países Bajos)Dutch (Netherlands) 0x04130x0413 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglés (Australia)English (Australia) 0x0c090x0c09 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglés (Belice)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 (India)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 (Malasia)English (Malaysia) 0x44090x4409 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglés (Nueva Zelanda)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 (Singapur)English (Singapore) 0x48090x4809 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglés (Sudáfrica)English (South Africa) 0x1c090x1c09 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inglés (Trinidad y 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
Spanish (Traditional Sort) - SpainEnglish (United States) 0x04090x0409 0x04090x0409 SQL_Latin1_General_CP1_CI_ASSQL_Latin1_General_CP1_CI_AS
Inglés (Zimbabue)English (Zimbabwe) 0x30090x3009 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Estonio (Estonia)Estonian (Estonia) 0x04250x0425 0x04250x0425 Estonian_CI_ASEstonian_CI_AS
Feroés (Islas Feroe)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
Finés (Finlandia)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 (Francia)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 (Suiza)French (Switzerland) 0x100c0x100c 0x040c0x040c French_CI_ASFrench_CI_AS
Frisón (Países Bajos)Frisian (Netherlands) 0x04620x0462 0x04620x0462 Latin1_General_CI_AILatin1_General_CI_AI
Gallego (España)Galician (Spain) 0x04560x0456 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Georgiano (Georgia)Georgian (Georgia) 0x104370x10437 0x104370x10437 Georgian_Modern_Sort_CI_ASGeorgian_Modern_Sort_CI_AS
Georgiano (Georgia)Georgian (Georgia) 0x04370x0437 0x04190x0419 Latin1_General_CI_ASLatin1_General_CI_AS
Alemán (alfabetización de libreta de teléfonos, DIN)German - Phone Book Sort (DIN) 0x104070x10407 0x104070x10407 German_PhoneBook_CI_ASGerman_PhoneBook_CI_AS
Alemán (Austria)German (Austria) 0x0c070x0c07 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Alemán (Alemania)German (Germany) 0x04070x0407 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Alemán (Liechtenstein)German (Liechtenstein) 0x14070x1407 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Alemán (Luxemburgo)German (Luxembourg) 0x10070x1007 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Alemán (Suiza)German (Switzerland) 0x08070x0807 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Griego (Grecia)Greek (Greece) 0x04080x0408 0x04080x0408 Greek_CI_ASGreek_CI_AS
Groenlandés (Groenlandia)Greenlandic (Greenland) 0x046f0x046f 0x04060x0406 Danish_Norwegian_CI_ASDanish_Norwegian_CI_AS
Gujarati (India)Gujarati (India) 0x04470x0447 0x04390x0439 No disponible en el nivel de servidorNot available at server level
Hausa (Nigeria, latino)Hausa (Nigeria, Latin) 0x04680x0468 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Hebreo (Israel)Hebrew (Israel) 0x040d0x040d 0x040d0x040d Hebrew_CI_ASHebrew_CI_AS
Hindi (India)Hindi (India) 0x04390x0439 0x04390x0439 No disponible en el nivel de servidorNot available at server level
Húngaro (Hungría)Hungarian (Hungary) 0x040e0x040e 0x040e0x040e Hungarian_CI_ASHungarian_CI_AS
Húngaro técnicoHungarian Technical Sort 0x1040e0x1040e 0x1040e0x1040e Hungarian_Technical_CI_ASHungarian_Technical_CI_AS
Islandés (Islandia)Icelandic (Iceland) 0x040f0x040f 0x040f0x040f Icelandic_CI_ASIcelandic_CI_AS
Igbo (Nigeria)Igbo (Nigeria) 0x04700x0470 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Indonesio (Indonesia)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 (Italia)Italian (Italy) 0x04100x0410 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Italiano (Suiza)Italian (Switzerland) 0x08100x0810 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Japonés (Japón XJIS)Japanese (Japan XJIS) 0x04110x0411 0x04110x0411 Japanese_CI_ASJapanese_CI_AS
Japonés (Japón)Japanese (Japan) 0x0404110x040411 0x404110x40411 Latin1_General_CI_AILatin1_General_CI_AI
Canarés (India)Kannada (India) 0x044b0x044b 0x04390x0439 No disponible en el nivel de servidorNot available at server level
Kazajo (Kazajistán)Kazakh (Kazakhstan) 0x043f0x043f 0x043f0x043f Kazakh_90_CI_ASKazakh_90_CI_AS
Jemer (Camboya)Khmer (Cambodia) 0x04530x0453 0x04530x0453 No disponible en el nivel de servidorNot available at server level
Quiché (Guatemala)K'iche (Guatemala) 0x04860x0486 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Kinyarwanda (Ruanda)Kinyarwanda (Rwanda) 0x04870x0487 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Konkani (India)Konkani (India) 0x04570x0457 0x04390x0439 No disponible en el nivel de servidorNot available at server level
Coreano (Orden del diccionario coreano)Korean (Korea Dictionary Sort) 0x04120x0412 0x04120x0412 Korean_Wansung_CI_ASKorean_Wansung_CI_AS
Kirguizo (Kirguizistán)Kyrgyz (Kyrgyzstan) 0x04400x0440 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Lao (R.D.P. de Laos)Lao (Lao PDR) 0x04540x0454 0x04540x0454 No disponible en el nivel de servidorNot available at server level
Letón (Letonia)Latvian (Latvia) 0x04260x0426 0x04260x0426 Latvian_CI_ASLatvian_CI_AS
Lituano (Lituania)Lithuanian (Lithuania) 0x04270x0427 0x04270x0427 Lithuanian_CI_ASLithuanian_CI_AS
Bajo sorbio (Alemania)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
Macedonio (Macedonia, ARYM)Macedonian (Macedonia, FYROM) 0x042f0x042f 0x042f0x042f Macedonian_FYROM_90_CI_ASMacedonian_FYROM_90_CI_AS
Malayo (Brunéi Darussalam)Malay (Brunei Darussalam) 0x083e0x083e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Malayo (Malasia)Malay (Malaysia) 0x043e0x043e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Malayalam (India)Malayalam (India) 0x044c0x044c 0x04390x0439 No disponible en el nivel de servidorNot available at server level
Maltés (Malta)Maltese (Malta) 0x043a0x043a 0x043a0x043a Latin1_General_CI_AILatin1_General_CI_AI
Maorí (Nueva Zelanda)Maori (New Zealand) 0x04810x0481 0x04810x0481 Latin1_General_CI_AILatin1_General_CI_AI
Mapuche (Chile)Mapudungun (Chile) 0x047a0x047a 0x047a0x047a Latin1_General_CI_AILatin1_General_CI_AI
Maratí (India)Marathi (India) 0x044e0x044e 0x04390x0439 No disponible en el nivel de servidorNot available at server level
Mohawk (Canadá)Mohawk (Canada) 0x047c0x047c 0x047c0x047c Latin1_General_CI_AILatin1_General_CI_AI
Mongol (Mongolia)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í (Nepal)Nepali (Nepal) 0x04610x0461 0x04610x0461 No disponible en el nivel de servidorNot available at server level
Noruego (Bokmål, Noruega)Norwegian (Bokmål, Norway) 0x04140x0414 0x04140x0414 Latin1_General_CI_AILatin1_General_CI_AI
Noruego (nynorsk, Noruega)Norwegian (Nynorsk, Norway) 0x08140x0814 0x04140x0414 Latin1_General_CI_AILatin1_General_CI_AI
Occitano (Francia)Occitan (France) 0x04820x0482 0x040c0x040c French_CI_ASFrench_CI_AS
Oriya (India)Oriya (India) 0x04480x0448 0x04390x0439 No disponible en el nivel de servidorNot available at server level
Pastún (Afganistán)Pashto (Afghanistan) 0x04630x0463 0x04630x0463 No disponible en el nivel de servidorNot available at server level
Persa (Irán)Persian (Iran) 0x04290x0429 0x04290x0429 Latin1_General_CI_AILatin1_General_CI_AI
Polaco (Polonia)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
Punjabí (India)Punjabi (India) 0x04460x0446 0x04390x0439 No disponible en el nivel de servidorNot available at server level
Quechua (Bolivia)Quechua (Bolivia) 0x046b0x046b 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Quechua (Ecuador)Quechua (Ecuador) 0x086b0x086b 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Quechua (Perú)Quechua (Peru) 0x0c6b0x0c6b 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Rumano (Rumanía)Romanian (Romania) 0x04180x0418 0x04180x0418 Romanian_CI_ASRomanian_CI_AS
Romanche (Suiza)Romansh (Switzerland) 0x04170x0417 0x04170x0417 Latin1_General_CI_AILatin1_General_CI_AI
Ruso (Rusia)Russian (Russia) 0x04190x0419 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Sami (inari, Finlandia)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, Suecia)Sami (Lule, Sweden) 0x143b0x143b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Sami (septentrional, Finlandia)Sami (Northern, Finland) 0x0c3b0x0c3b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Sami (septentrional, Noruega)Sami (Northern, Norway) 0x043b0x043b 0x043b0x043b Latin1_General_CI_AILatin1_General_CI_AI
Sami (septentrional, Suecia)Sami (Northern, Sweden) 0x083b0x083b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Sami (skolt, Finlandia)Sami (Skolt, Finland) 0x203b0x203b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Sami (meridional, Noruega)Sami (Southern, Norway) 0x183b0x183b 0x043b0x043b Latin1_General_CI_AILatin1_General_CI_AI
Sami (meridional, Suecia)Sami (Southern, Sweden) 0x1c3b0x1c3b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Sánscrito (India)Sanskrit (India) 0x044f0x044f 0x04390x0439 No disponible en el nivel de servidorNot available at server level
Serbio (cirílico, Bosnia-Herzegovina)Serbian (Bosnia and Herzegovina, Cyrillic) 0x1c1a0x1c1a 0x0c1a0x0c1a Latin1_General_CI_AILatin1_General_CI_AI
Serbio (latino, Bosnia-Herzegovina)Serbian (Bosnia and Herzegovina, Latin) 0x181a0x181a 0x081a0x081a Latin1_General_CI_AILatin1_General_CI_AI
Serbio (cirílico, Serbia)Serbian (Serbia, Cyrillic) 0x0c1a0x0c1a 0x0c1a0x0c1a Latin1_General_CI_AILatin1_General_CI_AI
Serbio (latino, Serbia)Serbian (Serbia, Latin) 0x081a0x081a 0x081a0x081a Latin1_General_CI_AILatin1_General_CI_AI
Sesotho sa Leboa/sotho septentrional (Sudáfrica)Sesotho sa Leboa/Northern Sotho (South Africa) 0x046c0x046c 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Setswana/tswana (Sudáfrica)Setswana/Tswana (South Africa) 0x04320x0432 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Cingalés (Sri Lanka)Sinhala (Sri Lanka) 0x045b0x045b 0x04390x0439 No disponible en el nivel de servidorNot available at server level
Eslovaco (Eslovaquia)Slovak (Slovakia) 0x041b0x041b 0x041b0x041b Slovak_CI_ASSlovak_CI_AS
Esloveno (Eslovenia)Slovenian (Slovenia) 0x04240x0424 0x04240x0424 Slovenian_CI_ASSlovenian_CI_AS
Español (Argentina)Spanish (Argentina) 0x2c0a0x2c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (Bolivia)Spanish (Bolivia) 0x400a0x400a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (Chile)Spanish (Chile) 0x340a0x340a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (Colombia)Spanish (Colombia) 0x240a0x240a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (Costa Rica)Spanish (Costa Rica) 0x140a0x140a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (República Dominicana)Spanish (Dominican Republic) 0x1c0a0x1c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (Ecuador)Spanish (Ecuador) 0x300a0x300a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (El Salvador)Spanish (El Salvador) 0x440a0x440a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (Guatemala)Spanish (Guatemala) 0x100a0x100a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (Honduras)Spanish (Honduras) 0x480a0x480a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (México)Spanish (Mexico) 0x080a0x080a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (Nicaragua)Spanish (Nicaragua) 0x4c0a0x4c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (Panamá)Spanish (Panama) 0x180a0x180a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (Paraguay)Spanish (Paraguay) 0x3c0a0x3c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (Perú)Spanish (Peru) 0x280a0x280a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (Puerto Rico)Spanish (Puerto Rico) 0x500a0x500a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (España)Spanish (Spain) 0x0c0a0x0c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (España, tradicional)Spanish (Spain, Traditional Sort) 0x040a0x040a 0x040a0x040a Traditional_Spanish_CI_ASTraditional_Spanish_CI_AS
Español (Estados Unidos)Spanish (United States) 0x540a0x540a 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Español (Uruguay)Spanish (Uruguay) 0x380a0x380a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Español (Venezuela)Spanish (Venezuela) 0x200a0x200a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Swahili (Kenia)Swahili (Kenya) 0x04410x0441 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Sueco (Finlandia)Swedish (Finland) 0x081d0x081d 0x040b0x040b Finnish_Swedish_CI_ASFinnish_Swedish_CI_AS
Sueco (Suecia)Swedish (Sweden) 0x041d0x041d 0x040b0x040b Finnish_Swedish_CI_ASFinnish_Swedish_CI_AS
Sirio (Siria)Syriac (Syria) 0x045a0x045a 0x045a0x045a No disponible en el nivel de servidorNot available at server level
Tayiko (Tayikistán)Tajik (Tajikistan) 0x04280x0428 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Tamazight (latino, Argelia)Tamazight (Algeria, Latin) 0x085f0x085f 0x085f0x085f Latin1_General_CI_AILatin1_General_CI_AI
Tamil (India)Tamil (India) 0x04490x0449 0x04390x0439 No disponible en el nivel de servidorNot available at server level
Tatar (Rusia)Tatar (Russia) 0x04440x0444 0x04440x0444 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Telugu (India)Telugu (India) 0x044a0x044a 0x04390x0439 No disponible en el nivel de servidorNot available at server level
Tailandés (Tailandia)Thai (Thailand) 0x041e0x041e 0x041e0x041e Thai_CI_ASThai_CI_AS
Tibetano (RPC)Tibetan (PRC) 0x04510x0451 0x04510x0451 No disponible en el nivel de servidorNot available at server level
Turco (Turquía)Turkish (Turkey) 0x041f0x041f 0x041f0x041f Turkish_CI_ASTurkish_CI_AS
Turcomano (Turkmenistán)Turkmen (Turkmenistan) 0x04420x0442 0x04420x0442 Latin1_General_CI_AILatin1_General_CI_AI
Uigur (RPC)Uighur (PRC) 0x04800x0480 0x04800x0480 Latin1_General_CI_AILatin1_General_CI_AI
Ucraniano (Ucrania)Ukrainian (Ukraine) 0x04220x0422 0x04220x0422 Ukrainian_CI_ASUkrainian_CI_AS
Alto sorbio (Alemania)Upper Sorbian (Germany) 0x042e0x042e 0x042e0x042e Latin1_General_CI_AILatin1_General_CI_AI
Urdú (Pakistán)Urdu (Pakistan) 0x04200x0420 0x04200x0420 Latin1_General_CI_AILatin1_General_CI_AI
Uzbeko (cirílico, Uzbekistán)Uzbek (Uzbekistan, Cyrillic) 0x08430x0843 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Uzbeko (Uzbekistán, latín)Uzbek (Uzbekistan, Latin) 0x04430x0443 0x04430x0443 Uzbek_Latin_90_CI_ASUzbek_Latin_90_CI_AS
Vietnamita (Vietnam)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
Wolof (Senegal)Wolof (Senegal) 0x04880x0488 0x040c0x040c French_CI_ASFrench_CI_AS
Xhosa/isiXhosa (Sudáfrica)Xhosa/isiXhosa (South Africa) 0x04340x0434 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Yakuto (Rusia)Yakut (Russia) 0x04850x0485 0x04850x0485 Latin1_General_CI_AILatin1_General_CI_AI
Yi (RPC)Yi (PRC) 0x04780x0478 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Yoruba (Nigeria)Yoruba (Nigeria) 0x046a0x046a 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Zulú/isiZulu (Sudáfrica)Zulu/isiZulu (South Africa) 0x04350x0435 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS

Nota

Las intercalaciones exclusivas de Unicode no se pueden seleccionar durante la instalación de SQL ServerSQL Server, porque no se admiten como intercalaciones de nivel de servidor.Unicode-only collations can't be selected during SQL ServerSQL Server setup, because they aren't supported as server-level collations.

Después de que haya asignado una intercalación al servidor, solo la puede cambiar si exporta todos los objetos y datos de base de datos, vuelve a compilar la base de datos master e importa todos los objetos y datos de base de datos.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. En lugar de cambiar la intercalación predeterminada de una instancia de SQL ServerSQL Server, puede especificar la intercalación deseada al crear una base de datos o una columna de base de datos.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 la intercalación del servidor de una instancia de SQL ServerSQL Server, use la función SERVERPROPERTY:To query the server collation for an instance of SQL ServerSQL Server, use the SERVERPROPERTY function:

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

Para consultar todas las intercalaciones disponibles del servidor, utilice la siguiente función integrada de fn_helpcollations():To query the server for all available collations, use the following fn_helpcollations() built-in function:

SELECT * FROM sys.fn_helpcollations();

Intercalaciones de base de datosDatabase-level collations

Cuando se crea o modifica una base de datos, se puede usar la cláusula COLLATE de la instrucción CREATE DATABASE o ALTER DATABASE para especificar la intercalación de base de datos predeterminada.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. Si no se especifica ninguna intercalación, se asigna a la base de datos la intercalación de servidor.If no collation is specified, the database is assigned the server collation.

No se puede cambiar la intercalación de las bases de datos del sistema a menos que se cambie la intercalación del servidor.You can't change the collation of system databases unless you change the collation for the server.

La intercalación de base de datos se usa para todos los metadatos de la base de datos, y es la predeterminada para todas las columnas de cadena, los objetos temporales, los nombres de variable y cualquier otra cadena que se use en la base de datos.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. Cuando se cambia la intercalación de una base de datos de usuario, pueden producirse conflictos de intercalación cuando las consultas en la base de datos tienen acceso a tablas temporales.When you change the collation of a user database, there can be collation conflicts when queries in the database access temporary tables. Las tablas temporales se almacenan siempre en la base de datos del sistema de tempdb, que usa la intercalación de la instancia.Temporary tables are always stored in the tempdb system database, which uses the collation for the instance. Es posible que las consultas que comparan datos de caracteres entre la base de datos de usuario y tempdb generen un error si las intercalaciones producen un conflicto en la evaluación de los datos de caracteres.Queries that compare character data between the user database and tempdb might fail if the collations cause a conflict in evaluating the character data. Puede resolver esta incidencia si especifica la cláusula COLLATE en la consulta.You can resolve this issue by specifying the COLLATE clause in the query. Para más información, vea COLLATE (Transact-SQL).For more information, see COLLATE (Transact-SQL).

Nota

No se puede cambiar la intercalación una vez creada la base de datos en Base de datos SQL de AzureAzure SQL Database.You can't change the collation after the database has been created on Base de datos SQL de AzureAzure SQL Database.

La intercalación de una base de datos de usuario se puede cambiar con una instrucción ALTER DATABASE similar a la siguiente: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

La alteración de la intercalación de nivel de base de datos no afecta a las intercalaciones de nivel de columna o de expresión.Altering the database-level collation doesn't affect column-level or expression-level collations.

Puede recuperar la intercalación actual de una base de datos mediante una instrucción similar a la siguiente: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'));

Intercalaciones de columnaColumn-level collations

Cuando cree o modifique una tabla, puede especificar intercalaciones para cada columna de cadena de caracteres mediante la cláusula COLLATE.When you create or alter a table, you can specify collations for each character-string column by using the COLLATE clause. Si no especifica ninguna intercalación, se asigna a la columna la intercalación predeterminada de la base de datos.If you don't specify a collation, the column is assigned the default collation of the database.

La intercalación de una columna se puede cambiar con una instrucción ALTER TABLE similar a la siguiente: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;

Intercalaciones de expresiónExpression-level collations

Las intercalaciones de nivel de expresión se establecen cuando se ejecuta una instrucción y afectan al modo en que se devuelve un conjunto de resultados.Expression-level collations are set when a statement is run, and they affect the way a result set is returned. Esto permite que los resultados de la ordenación ORDER BY sean específicos de la configuración regional.This enables ORDER BY sort results to be locale-specific. Para implementar intercalaciones de nivel de expresión, use una cláusula COLLATE como la siguiente: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;    

Configuración regionalLocale

Una configuración regional es un conjunto de información que está asociado a una ubicación o referencia cultural.A locale is a set of information that's associated with a location or a culture. La información puede incluir el nombre e identificador del idioma hablado, la escritura que se usa para escribir el idioma y las convenciones culturales.The information can include the name and identifier of the spoken language, the script that's used to write the language, and cultural conventions. Las intercalaciones pueden estar asociadas a una o varias configuraciones regionales.Collations can be associated with one or more locales. Para obtener más información, vea Id. de configuración regional asignados por Microsoft.For more information, see Locale IDs Assigned by Microsoft.

Página de códigosCode page

Una página de códigos es un juego ordenado de caracteres en un script determinado en el que un índice numérico, o un valor de punto de código, está asociado con cada carácter.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. Una página de códigos de Windows se denomina normalmente juego de caracteres o charset.A Windows code page is typically referred to as a character set or a charset. Las páginas de códigos se usan para ofrecer compatibilidad con los juegos de caracteres y las distribuciones de teclado que se usan en distintas configuraciones regionales del sistema Windows.Code pages are used to provide support for the character sets and keyboard layouts that are used by different Windows system locales.

Criterio de ordenaciónSort order

El criterio de ordenación especifica cómo se ordenan los valores de datos.Sort order specifies how data values are sorted. El orden afecta a los resultados de la comparación de los datos.The order affects the results of data comparison. Los datos se ordenan con las intercalaciones, y se pueden optimizar mediante los índices.Data is sorted by using collations, and it can be optimized by using indexes.

Compatibilidad con UnicodeUnicode support

Unicode es un estándar que permite asignar puntos de código con caracteres.Unicode is a standard for mapping code points to characters. Como se ha diseñado para abarcar todos los caracteres de todos los idiomas del mundo, no es preciso usar otras páginas de códigos para controlar los distintos juegos 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.

Conceptos básicos de UnicodeUnicode basics

El almacenamiento de datos en varios idiomas dentro de una misma base de datos es difícil de controlar cuando solo se usan datos de tipo carácter y páginas de códigos.Storing data in multiple languages within one database is difficult to manage when you use only character data and code pages. También es difícil encontrar una página de códigos para la base de datos que pueda almacenar todos los caracteres específicos de cada idioma.It's also difficult to find one code page for the database that can store all the required language-specific characters. Además, es difícil asegurar la traducción adecuada de los caracteres especiales cuando se leen o actualizan desde clientes diferentes que ejecutan distintas páginas de códigos.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. Las bases de datos que admiten clientes internacionales siempre deberían usar tipos de datos Unicode en vez de tipos de datos no Unicode.Databases that support international clients should always use Unicode data types instead of non-Unicode data types.

Por ejemplo, imaginemos que una base de datos de clientes en Norteamérica tiene que administrar tres idiomas:For example, consider a database of customers in North America that must handle three major languages:

  • Nombres y direcciones en español para MéxicoSpanish names and addresses for Mexico
  • Nombres y direcciones en francés para QuebecFrench names and addresses for Quebec
  • Nombres y direcciones en inglés para el resto de Canadá y para Estados UnidosEnglish names and addresses for the rest of Canada and the United States

Cuando use solo columnas de caracteres y páginas de códigos, debe prestar atención para asegurarse de que la base de datos esté instalada con una página de códigos que controle los caracteres de los tres 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. También debe prestar atención para asegurar la traducción adecuada de los caracteres de uno de los idiomas cuando se lean en clientes que ejecuten una página de códigos para otro 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.

Nota

Las páginas de códigos que un cliente usa se determinan en la configuración del sistema operativo (SO).The code pages that a client uses are determined by the operating system (OS) settings. Para establecer las páginas de códigos del cliente en los sistemas operativos Windows, use Configuración regional en el Panel de control.To set client code pages on the Windows operating system, use Regional Settings in Control Panel.

Sería difícil elegir una página de códigos para los tipos de datos de carácter que admita todos los caracteres que precisa un público 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. La forma más fácil de administrar los datos de caracteres en las bases de datos internacionales es usar siempre un tipo de datos que admita Unicode.The easiest way to manage character data in international databases is to always use a data type that supports Unicode.

Tipos de datos UnicodeUnicode data types

Si almacena datos de caracteres que reflejan varios idiomas en SQL ServerSQL Server (de SQL Server 2005 (9.x)SQL Server 2005 (9.x) a SQL ServerSQL Server), use tipos de datos Unicode (nchar, nvarchar y ntext) en lugar de tipos de datos que no sean Unicode (char, varchar y text).If you store character data that reflects multiple languages in SQL ServerSQL Server (SQL Server 2005 (9.x)SQL Server 2005 (9.x) through SQL ServerSQL Server), use Unicode data types (nchar, nvarchar, and ntext) instead of non-Unicode data types (char, varchar, and text).

Nota

Para los tipos de datos Unicode, Motor de base de datosDatabase Engine puede representar hasta 65 535 caracteres mediante UCS-2, o el intervalo completo de Unicode (1 114 111 caracteres) si se usan caracteres adicionales.For Unicode data types, the Motor de base de datosDatabase 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 más información sobre cómo habilitar caracteres adicionales, vea Caracteres adicionales.For more information about enabling supplementary characters, see Supplementary Characters.

Como alternativa, a partir de SQL Server 2019 (15.x)SQL Server 2019 (15.x), si se usa una intercalación compatible con UTF-8 (_UTF8), los tipos de datos anteriores que no son Unicode (char y varchar) se convierten en tipos de datos 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. SQL Server 2019 (15.x)SQL Server 2019 (15.x) no cambia el comportamiento de los tipos de datos Unicode (UTF-16) que existieran antes (nchar, nvarchar y ntext).doesn't change the behavior of previously existing Unicode (UTF-16) data types (nchar, nvarchar, and ntext). Para más información, vea Diferencias de almacenamiento entre UTF-8 y UTF-16.For more information, see Storage differences between UTF-8 and UTF-16.

Consideraciones de UnicodeUnicode considerations

Hay limitaciones significativas asociadas a los tipos de datos no Unicode.Significant limitations are associated with non-Unicode data types. Esto se debe a que un equipo que no es Unicode está limitado a usar una única página de códigos.This is because a non-Unicode computer is limited to using a single code page. Es posible que experimente una ganancia de rendimiento al usar Unicode, ya que requiere menos conversiones de páginas de códigos.You might experience performance gain by using Unicode, because it requires fewer code-page conversions. Las intercalaciones Unicode se deben seleccionar de forma individual en el nivel de expresión, base de datos o columna porque no se admiten en el nivel de servidor.Unicode collations must be selected individually at the database, column, or expression level because they aren't supported at the server level.

Al mover los datos de un servidor a un cliente, los controladores de cliente anteriores podrían no reconocer la intercalación del servidor.When you move data from a server to a client, your server collation might not be recognized by older client drivers. Esto puede ocurrir al mover los datos de un servidor Unicode a un cliente no Unicode.This can occur when you move data from a Unicode server to a non-Unicode client. La mejor opción podría ser actualizar el sistema operativo cliente para que las intercalaciones del sistema subyacentes se actualicen.Your best option might be to upgrade the client operating system so that the underlying system collations are updated. Si el cliente tiene instalado software cliente de base de datos, se puede considerar la posibilidad de aplicar a dicho software una actualización de servicio.If the client has database client software installed, you might consider applying a service update to the database client software.

Sugerencia

También puede intentar utilizar una intercalación diferente para los datos del servidor.You can also try to use a different collation for the data on the server. Elija una intercalación que se asigne a una página de códigos en el cliente.Choose a collation that maps to a code page on the client.

Para usar las intercalaciones UTF-16 disponibles en SQL ServerSQL Server (de SQL Server 2012 (11.x)SQL Server 2012 (11.x) a SQL ServerSQL Server) a fin de mejorar la búsqueda y la ordenación de algunos caracteres Unicode (solo en las intercalaciones de Windows), puede seleccionar una de las intercalaciones de caracteres adicionales (_SC), o bien una de las de la versión 140.To use the UTF-16 collations that are available in SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL ServerSQL Server) 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 las intercalaciones UTF- 8 disponibles en SQL Server 2019 (15.x)SQL Server 2019 (15.x) a fin de mejorar la búsqueda y la ordenación de algunos caracteres Unicode (solo en las intercalaciones de Windows), debe seleccionar las intercalaciones compatibles con la codificación 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).

  • La marca UTF8 se puede aplicar a:The UTF8 flag can be applied to:

    • Intercalaciones de la versión 90Version 90 collations

      Nota

      Solo en esta versión ya hay intercalaciones que reconocen los caracteres complementarios (_SC) o distinguen entre selector de variación (_VSS).Only when supplementary characters (_SC) or variation-selector-sensitive (_VSS) aware collations already exist in this version.

    • Intercalaciones de la versión 100Version 100 collations
    • Intercalaciones de la versión 140Version 140 collations
    • Intercalación binaria BIN21BIN21 binary collation
  • La marca UTF8 no se puede aplicar a:The UTF8 flag can't be applied to:

    • Intercalaciones de la versión 90 que no son compatibles con caracteres adicionales (_SC) o la distinción de selector de variación (_VSS)Version 90 collations that don't support supplementary characters (_SC) or variation-selector-sensitive (_VSS)
    • Intercalaciones binarias BIN o BIN22The BIN or BIN22 binary collations
    • Intercalaciones SQL_*The SQL_* collations

1 A partir de SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 2.3.1 Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 2.3. SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 3.0 reemplazó la intercalación UTF8_BIN2 por Latin1_General_100_BIN2_UTF8.CTP 3.0 replaced collation UTF8_BIN2 with Latin1_General_100_BIN2_UTF8.
2 Hasta con 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 evaluar completamente los problemas relacionados con el uso de tipos de datos Unicode y no Unicode, pruebe su escenario para cuantificar las diferencias de rendimiento en su entorno.To evaluate issues that are related to using Unicode or non-Unicode data types, test your scenario to measure performance differences in your environment. Se recomienda normalizar la intercalación que se usa en los sistemas de una organización e implementar servidores y clientes Unicode siempre que sea posible.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.

En muchos casos, SQL ServerSQL Server interactúa con otros servidores o clientes, y es posible que la organización use varios estándares de acceso a datos entre las aplicaciones y las instancias 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. Los clientesSQL ServerSQL Server son uno de los dos tipos principales:SQL ServerSQL Server clients are one of two main types:

  • Clientes Unicode que usan OLE DB y Conectividad abierta de bases de datos (ODBC) versión 3.7 o posterior.Unicode clients that use OLE DB and Open Database Connectivity (ODBC) version 3.7 or later.
  • Clientes no Unicode que usan DB-Library y ODBC versión 3.6 o anterior.Non-Unicode clients that use DB-Library and ODBC version 3.6 or earlier.

En la tabla siguiente se proporciona información sobre cómo usar datos multilingües con varias combinaciones de servidores Unicode y no Unicode:The following table provides information about using multilingual data with various combinations of Unicode and non-Unicode servers:

ServidorServer ClienteClient Beneficios o limitacionesBenefits or limitations
UnicodeUnicode UnicodeUnicode Dado que los datos Unicode se usan en todo el sistema, este escenario proporciona el máximo rendimiento y protección frente a daños de los datos recuperados.Because Unicode data is used throughout the system, this scenario provides the best performance and protection from corruption of retrieved data. Se trata de la situación con Objetos de datos ActiveX (ADO), OLE DB y ODBC versión 3.7 o posterior.This is the situation with ActiveX Data Objects (ADO), OLE DB, and ODBC version 3.7 or later.
UnicodeUnicode No UnicodeNon-Unicode En este escenario y especialmente con las conexiones entre un servidor que ejecuta un sistema operativo más reciente y un cliente que ejecuta una versión anterior de SQL ServerSQL Server, o bien un sistema operativo anterior, puede haber limitaciones o producirse errores al mover los datos a un equipo 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. Los datos Unicode del servidor intentan asignarse a una página de códigos correspondiente en el cliente no Unicode para convertir los datos.Unicode data on the server tries to map to a corresponding code page on the non-Unicode client to convert the data.
No UnicodeNon-Unicode UnicodeUnicode No es una configuración idónea para usar datos multilingües.This isn't an ideal configuration for using multilingual data. No puede escribir datos Unicode en el servidor no Unicode.You can't write Unicode data to the non-Unicode server. Es probable que se produzcan problemas si los datos se envían a servidores externos a la página de códigos del servidor.Problems are likely to occur when data is sent to servers that are outside the server's code page.
No UnicodeNon-Unicode No UnicodeNon-Unicode Se trata de un escenario muy limitado para datos multilingües.This is a very limiting scenario for multilingual data. Puede usar solo una única página de códigos.You can use only a single code page.

Caracteres adicionalesSupplementary characters

Unicode Consortium asigna a cada carácter un punto de código único, que es un valor en el intervalo comprendido entre 000000 y 10FFFF.The Unicode Consortium allocates to each character a unique code point, which is a value in the range 000000–10FFFF. Los caracteres usados con más frecuencia tienen valores de punto de código en el intervalo comprendido entre 000000 y 00FFFF (65 535 caracteres) que se ajustan a una palabra de 8 o 16 bits en memoria y en 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. Este intervalo normalmente se designa como el plano multilingüe básico (BMP).This range is usually designated as the Basic Multilingual Plane (BMP).

Pero Unicode Consortium estableció 16 "planos" adicionales de caracteres, cada uno de ellos del mismo tamaño que el BMP.But the Unicode Consortium has established 16 additional "planes" of characters, each the same size as the BMP. Esta definición ofrece a Unicode la posibilidad de representar 1 114 112 caracteres Unicode (es decir, 216 * 17 caracteres) dentro del intervalo de puntos de código comprendido entre 000000 y 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. Los caracteres con valores de punto de código mayores que 00FFFF requieren entre dos y cuatro palabras consecutivas de 8 bits (UTF-8) o dos palabras 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). Estos caracteres ubicados más allá del BMP se denominan caracteres adicionales y las dos palabras consecutivas adicionales de 8 o 16 bits se denominan pares suplentes.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 más información sobre los caracteres adicionales, los suplentes y los pares suplentes, consulte el estándar Unicode.For more information about supplementary characters, surrogates, and surrogate pairs, refer to the Unicode Standard.

SQL ServerSQL Server proporciona tipos de datos como nchar y nvarchar para almacenar datos Unicode en el intervalo BMP (de 000000 a 00FFFF), que Motor de base de datosDatabase Engine codifica mediante UCS-2.provides data types such as nchar and nvarchar to store Unicode data in the BMP range (000000–00FFFF), which the Motor de base de datosDatabase Engine encodes using UCS-2.

SQL Server 2012 (11.x)SQL Server 2012 (11.x) introdujo una nueva familia de intercalaciones de caracteres adicionales (_SC) que se pueden usar con los tipos de datos nchar, nvarchar y sql_variant para representar el intervalo de caracteres Unicode completo (de 000000 a 10FFFF).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 ejemplo: Latin1_General_100_CI_AS_SC o, si se usa una intercalación japonesa, 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) amplía la compatibilidad de los caracteres adicionales a los tipos de datos char y varchar con las nuevas intercalaciones habilitadas para UTF-8 (_UTF8).extends supplementary character support to the char and varchar data types with the new UTF-8 enabled collations (_UTF8). Estos tipos de datos también son capaces de representar el intervalo completo de caracteres Unicode.These data types are also capable of representing the full Unicode character range.

Nota

A partir de SQL Server 2014 (12.x)SQL Server 2014 (12.x), las nuevas intercalaciones _140 admiten de forma automática caracteres adicionales.Starting with SQL Server 2014 (12.x)SQL Server 2014 (12.x), all new _140 collations automatically support supplementary characters.

Si utiliza caracteres adicionales:If you use supplementary characters:

  • Los caracteres adicionales se pueden utilizar en las operaciones de ordenación y comparación en las versiones de intercalación 90 o mayores.Supplementary characters can be used in ordering and comparison operations in collation versions 90 or greater.

  • Todas las intercalaciones de la versión 100 admiten la ordenación lingüística con caracteres adicionales.All version 100 collations support linguistic sorting with supplementary characters.

  • Los caracteres adicionales no son compatibles con metadatos, como en los nombres de objetos de base de datos.Supplementary characters aren't supported for use in metadata, such as in names of database objects.

  • Las bases de datos en las que se usan intercalaciones con caracteres adicionales (_SC), no se pueden habilitar para la replicación de SQL ServerSQL Server.Databases that use collations with supplementary characters (_SC) can't be enabled for SQL ServerSQL Server Replication. El motivo es que algunas de las tablas y procedimientos almacenados del sistema que se crean para la replicación usan el tipo de datos ntext heredado, que no admite caracteres adicionales.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.

  • La marca SC se puede aplicar a:The SC flag can be applied to:

    • Intercalaciones de la versión 90Version 90 collations
    • Intercalaciones de la versión 100Version 100 collations
  • La marca SC no se puede aplicar a:The SC flag can't be applied to:

    • Intercalaciones de Windows sin versión de la versión 80Version 80 non-versioned Windows collations
    • Intercalaciones binarias BIN o BIN2The BIN or BIN2 binary collations
    • Intercalaciones SQL*The SQL* collations
    • Intercalaciones de la versión 140 (no necesitan la marca SC, dado que ya admiten caracteres adicionales)Version 140 collations (these don't need the SC flag, because they already support supplementary characters)

En la siguiente tabla se compara el comportamiento de algunas funciones de cadena y algunos operadores de cadena cuando usan caracteres adicionales con y sin intercalación de caracteres adicionales (SCA):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:

Función u operador de cadenaString function or operator Con una intercalación SCAWith an SCA collation Sin una intercalación SCAWithout an SCA collation
CHARINDEXCHARINDEX

LENLEN

PATINDEXPATINDEX
El par suplente de UTF-16 se cuenta como un solo punto de código.The UTF-16 surrogate pair is counted as a single code point. El par suplente de UTF-16 se cuenta como dos puntos de código.The UTF-16 surrogate pair is counted as two code points.
LEFTLEFT

REPLACEREPLACE

REVERSEREVERSE

RIGHTRIGHT

SUBSTRINGSUBSTRING

STUFFSTUFF
Estas funciones tratan los pares suplentes como un solo punto de código y funcionan de la forma esperada.These functions treat each surrogate pair as a single code point and work as expected. Es posible que estas funciones dividan cualquier par suplente y provoquen resultados inesperados.These functions might split any surrogate pairs and lead to unexpected results.
NCHARNCHAR Devuelve el carácter correspondiente al valor del punto de código Unicode especificado en el intervalo comprendido entre 0 y 0x10FFFF.Returns the character that corresponds to the specified Unicode code point value in the range 0–0x10FFFF. Si el valor especificado está en el intervalo comprendido entre 0 y 0xFFFF, se devuelve un carácter.If the specified value lies in the range 0–0xFFFF, one character is returned. Con valores más altos, se devuelve el suplente correspondiente.For higher values, the corresponding surrogate is returned. Un valor mayor que 0xFFFF devuelve NULL en vez del suplente correspondiente.A value higher than 0xFFFF returns NULL instead of the corresponding surrogate.
UNICODEUNICODE Devuelve un punto de código UTF-16 en el intervalo comprendido entre 0 y 0x10FFFF.Returns a UTF-16 code point in the range 0–0x10FFFF. Devuelve un punto de código UCS-2 en el intervalo comprendido entre 0 y 0xFFFF.Returns a UCS-2 code point in the range 0–0xFFFF.
Hacer coincidir un carácter comodínMatch One Character Wildcard

Carácter comodín - caracteres no coincidentesWildcard - Character(s) Not to Match
Se admiten caracteres adicionales para todas las operaciones de caracteres comodín.Supplementary characters are supported for all wildcard operations. No se admiten caracteres adicionales para estas operaciones de caracteres comodín.Supplementary characters aren't supported for these wildcard operations. Se admiten otros operadores de caracteres comodín.Other wildcard operators are supported.

Compatibilidad con GB18030GB18030 support

GB18030 es un estándar independiente que se usa en la República Popular China para codificar caracteres chinos.GB18030 is a separate standard that's used in the People's Republic of China for encoding Chinese characters. En GB18030, los caracteres pueden tener una longitud de 1, 2 o 4 bytes.In GB18030, characters can be 1, 2, or 4 bytes in length. SQL ServerSQL Server admite caracteres de codificación GB18030, reconociéndolos en el momento de su entrada en un servidor procedentes de una aplicación del lado cliente y convirtiéndolos y almacenándolos de forma nativa como caracteres Unicode.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. Una vez almacenados en el servidor, se tratan como caracteres Unicode en las operaciones siguientes.After they're stored in the server, they're treated as Unicode characters in any subsequent operations.

Puede usar cualquier intercalación china, preferentemente la más reciente: la versión 100.You can use any Chinese collation, preferably the latest 100 version. Todas las intercalaciones de nivel _100 admiten la ordenación lingüística con caracteres GB18030.All _100 level collations support linguistic sorting with GB18030 characters. Si los datos incluyen caracteres adicionales (pares suplentes), puede usar las intercalaciones SC disponibles en SQL ServerSQL Server para mejorar la búsqueda y la ordenación.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.

Nota

Asegúrese de que las herramientas de cliente, como SQL Server Management StudioSQL Server Management Studio, usan la fuente Dengxian para mostrar correctamente las cadenas que contienen caracteres con codificación 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.

Compatibilidad con escritura complejaComplex script support

SQL ServerSQL Server puede admitir la entrada, el almacenamiento, el cambio, y la visualización de escrituras complejas.can support inputting, storing, changing, and displaying complex scripts. Entre los ejemplos de escritura compleja se encuentran los siguientes tipos:Complex scripts include the following types:

  • Escritura que incluye la combinación de texto de derecha a izquierda y de izquierda a derecha, caso de una combinación de textos en á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.
  • Escritura cuyos caracteres cambian de forma dependiendo de su posición, o al combinarse con otros caracteres como, por ejemplo, los caracteres del árabe, el índico y el tailandés.Scripts whose characters change shape depending on their position, or when combined with other characters, such as Arabic, Indic, and Thai characters.
  • Idiomas como el tailandés que necesitan diccionarios internos para reconocer palabras porque no existen cortes entre ellas.Languages, such as Thai, that require internal dictionaries to recognize words because there are no breaks between them.

Las aplicaciones de base de datos que interactúan con SQL ServerSQL Server deben utilizar controles que sean compatibles con escritura compleja.Database applications that interact with SQL ServerSQL Server must use controls that support complex scripts. Los controles de formulario estándar de Windows creados en código administrado están habilitados para escritura compleja.Standard Windows form controls that are created in managed code are complex-script-enabled.

Intercalaciones japonesas agregadas en SQL Server 2017 (14.x)SQL Server 2017 (14.x)Japanese collations added in SQL Server 2017 (14.x)SQL Server 2017 (14.x)

A partir de SQL Server 2017 (14.x)SQL Server 2017 (14.x), se admiten nuevas familias de intercalaciones japonesas, con las permutaciones de varias opciones (_CS, _AS, _KS, _WS y _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 escuchar en estas intercalaciones, puede consultar Motor de base de datos de SQL ServerSQL Server Database Engine:To list these collations, you can query the Motor de base de datos de 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 las nuevas intercalaciones tienen compatibilidad integrada con los caracteres adicionales, por lo que ninguna de las nuevas intercalaciones _140 tienen (o necesitan) la marca 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.

Estas intercalaciones se admiten en los índices, las tablas optimizadas para memoria, los índices de almacén de columnas y los módulos compilados de forma nativa de Motor de base de datosDatabase Engine.These collations are supported in Motor de base de datosDatabase Engine indexes, memory-optimized tables, columnstore indexes, and natively compiled modules.

Compatibilidad con UTF-8UTF-8 support

SQL Server 2019 (15.x)SQL Server 2019 (15.x) presenta compatibilidad total con la codificación de caracteres UTF-8 ampliamente utilizada como codificación de importación o exportación, y como intercalación de columna o base de datos para los datos de cadena.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. UTF-8 se permite en los tipos de datos char y varchar, y se habilita al crear o cambiar la intercalación de un objeto a una intercalación con un sufijo 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. Un ejemplo es cambiar LATIN1_GENERAL_100_CI_AS_SC a 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.

UTF-8 solo está disponible para las intercalaciones de Windows que admiten caracteres adicionales, como se presentó en 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). Los tipos de datos nchar y nvarchar solo permiten la codificación UCS-2 o UTF-16, y permanecen sin cambios.The nchar and nvarchar data types allow UCS-2 or UTF-16 encoding only, and they remain unchanged.

Diferencias de almacenamiento entre UTF-8 y UTF-16Storage differences between UTF-8 and UTF-16

Unicode Consortium asigna a cada carácter un punto de código único, que es un valor en el intervalo comprendido entre 000000 y 10FFFF.The Unicode Consortium allocates to each character a unique code point, which is a value in the range 000000–10FFFF. Con SQL Server 2019 (15.x)SQL Server 2019 (15.x), ambas codificaciones, UTF-8 y UTF-16, están disponibles para representar el 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:

  • Con la codificación UTF-8, los caracteres del intervalo ASCII (entre 000000 y 00007F) requieren 1 byte, los puntos de código entre 000080 y 0007FF requieren 2 bytes, los puntos de código entre 000800 y 00FFFF requieren 3 bytes y los puntos de código entre 0010000 y 0010FFFF requieren 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.
  • Con la codificación UTF-16, los puntos de código entre 000000 y 00FFFF requieren 2 bytes y los puntos de código entre 0010000 y 0010FFFF requieren 4 bytes.With UTF-16 encoding, code points 000000–00FFFF require 2 bytes, and code points 0010000–0010FFFF require 4 bytes.

En la tabla siguiente se describen los bytes de almacenamiento de la codificación para cada intervalo de caracteres y tipo de codificación: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 almacenamiento 1 con UTF-8Storage bytes1 with UTF-8 Bytes de almacenamiento 1 con 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 Los bytes de almacenamiento hacen referencia a la longitud de bytes codificados, no al tamaño en disco del tipo de datos.1 Storage bytes refers to the encoded byte length, not the data-type on-disk storage size. Para obtener más información acerca de los tamaños de almacenamiento en disco, consulte nchar y nvarchar y char y varchar.For more information about on-disk storage sizes, see nchar and nvarchar and char and varchar.

2 El intervalo de puntos de código para caracteres adicionales.2 The code point range for supplementary characters.

Sugerencia

Es habitual pensar que en CHAR(n) y VARCHAR(n), o en NCHAR(n) y NVARCHAR(n), la n define el 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. Esto se debe a que en el ejemplo de una columna CHAR(10), se pueden almacenar 10 caracteres ASCII en el intervalo 0-127 mediante una intercalación como Latin1_General_100_CI_AI, porque cada carácter de este intervalo solo usa 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.

Pero en CHAR(n) y VARCHAR(n), n define el tamaño de la cadena en bytes (0-8.000), mientras que en NCHAR(n) y NVARCHAR(n) n define el tamaño de la cadena en 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 se pueden almacenar.n never defines numbers of characters that can be stored.

Como acaba de ver, elegir la codificación Unicode y el tipo de datos adecuado puede proporcionar ahorros significativos de almacenamiento o aumentar la superficie de memoria, según el juego de caracteres en 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 ejemplo, al usar una intercalación Latina habilitada para UTF-8, como Latin1_General_100_CI_AI_SC_UTF8, una columna CHAR(10) almacena 10 bytes y puede contener 10 caracteres ASCII en el 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. Pero solo puede contener 5 caracteres en el intervalo 128-2047 y 3 caracteres en el intervalo 2048-65535.But it can hold only 5 characters in the range 128–2047 and only 3 characters in the range 2048–65535. Por comparación, como una columna NCHAR(10) almacena 10 pares de bytes (20 bytes), puede contener 10 caracteres en el intervalo 0-65535.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 decidir si usar la codificación UTF-8 o UTF-16 para una base de datos o una columna, tenga en cuenta la distribución de datos de cadena que se almacenarán: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:

  • Si se encuentra principalmente en el intervalo ASCII 0-127 (por ejemplo, inglés), cada carácter requiere 1 byte con UTF-8 y 2 bytes con 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. El uso de UTF-8 ofrece ventajas de almacenamiento.Using UTF-8 provides storage benefits. Si se cambia un tipo de datos de columna existente con caracteres ASCII en el intervalo 0-127 de NCHAR(10) a CHAR(10) mediante una intercalación habilitada para UTF-8, esto se traduce en una reducción del 50 % de los requisitos de almacenamiento.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. Esta reducción se debe a que NCHAR(10) requiere 20 bytes para el almacenamiento, mientras que CHAR(10) necesita 10 bytes para representar la misma cadena 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.
  • Por encima del intervalo ASCII, casi todos los scripts basados en el alfabeto latino y también griego, cirílico, copto, armenio, hebreo, árabe, sitio, Tāna y n'ko requerirán 2 bytes por carácter tanto en UTF-8 como en 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. En estos casos no existen diferencias de almacenamiento importantes con tipos de datos comparables (por ejemplo, entre el uso de char o nchar).In these cases, there aren't significant storage differences for comparable data types (for example, between using char or nchar).
  • Si los scripts son principalmente de idiomas de Asia Oriental (por ejemplo, coreano, chino y japonés), cada carácter requiere 3 bytes con UTF-8 y 2 bytes con 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. El uso de UTF-16 ofrece ventajas de almacenamiento.Using UTF-16 provides storage benefits.
  • Los caracteres del intervalo comprendido entre 010000 y 10FFFF requieren 4 bytes en UTF-8 y UTF-16.Characters in the range 010000–10FFFF require 4 bytes in both UTF-8 and UTF-16. En estos casos, no existen diferencias en el almacenamiento con tipos de datos comparables (por ejemplo, entre usar char o nchar).In these cases, there aren't storage differences for comparable data types (for example, between using char or nchar).

Para otras consideraciones, consulte Escribir instrucciones Transact-SQL internacionales.For other considerations, see Write International Transact-SQL Statements.

TareaTask TemaTopic
Se describe cómo establecer o cambiar la intercalación de la instancia de SQL Server.Describes how to set or change the collation of the instance of SQL Server Configurar o cambiar la intercalación del servidorSet or Change the Server Collation
Se describe cómo establecer o cambiar la intercalación de una base de datos de usuario.Describes how to set or change the collation of a user database Establecer o cambiar la intercalación de base de datosSet or Change the Database Collation
Se describe cómo establecer o cambiar la intercalación de una columna de la base de datos.Describes how to set or change the collation of a column in the database Establecer o cambiar la intercalación de columnasSet or Change the Column Collation
Se describe cómo devolver información de intercalación en el nivel de servidor, base de datos o columna.Describes how to return collation information at the server, database, or column level Ver información de intercalaciónView Collation Information
Se describe cómo escribir instrucciones Transact-SQL que sean más portátiles de un idioma a otro, o bien que admitan varios idiomas más fácilmente.Describes how to write Transact-SQL statements that are more portable from one language to another, or support multiple languages more easily Escribir instrucciones Transact-SQL internacionalesWrite International Transact-SQL Statements
Se describe cómo cambiar el idioma de los mensajes de error y las preferencias sobre cómo usar y mostrar los datos de fecha, hora y moneda.Describes how to change the language of error messages and preferences for how date, time, and currency data is used and displayed Establecer un idioma de la sesiónSet a Session Language

Para más información, vea el contenido relacionado siguiente:For more information, see the following related content:

Vea tambiénSee also

Intercalaciones de bases de datos independientes Contained Database Collations
Elegir un idioma al crear un índice de texto completo Choose a Language When Creating a Full-Text Index
sys.fn_helpcollations (Transact-SQL)sys.fn_helpcollations (Transact-SQL)