Nombre de intercalación de Windows (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Almacenamiento en Microsoft Fabric

Especifica el nombre de intercalación de Windows en la COLLATE cláusula de SQL Server. El nombre de intercalación de Windows se compone del designador de intercalación y los estilos de comparación.

Convenciones de sintaxis de Transact-SQL

Sintaxis

<Windows_collation_name> ::=
<CollationDesignator>_<ComparisonStyle>

<ComparisonStyle> ::=
{ <CaseSensitivity>_<AccentSensitivity> [ _<KanatypeSensitive> ] [ _<WidthSensitive> ] [ _<VariationSelectorSensitive> ]
}
| { _UTF8 }
| { _BIN | _BIN2 }

Argumentos

CollationDesignator

Especifica las reglas de intercalación base utilizadas por la intercalación de Windows. Las reglas de intercalación base abarcan:

  • Las reglas de ordenación y comparación que se aplican cuando se especifica la ordenación del diccionario. Las reglas de ordenación se basan en el alfabeto o en el idioma.
  • La página de códigos que se usa para almacenar datos varchar.

Ejemplos:

  • Latin1_General o French: ambos usan la página de códigos 1252.
  • Turkish: usa la página de códigos 1254.

CaseSensitivity

CI especifica que no distingue mayúsculas de minúsculas y CS especifica distinción entre mayúsculas y minúsculas.

AccentSensitivity

AI especifica acentos que no distinguen acentos, AS especifica la distinción de énfasis.

KanatypeSensitive

Si se omite esta opción, se especifica kanatype-insensitive, KS se especifica kanatype-sensitive.

WidthSensitivity

Si se omite esta opción, se especifica un valor que no distingue ancho y WS se especifica el ancho.

VariationSelectorSensitivity

Se aplica a: SQL Server 2017 (14.x) y versiones posteriores

Si se omite esta opción, se especifica la diferencia entre selectores de variación y VSS se especifica la distinción entre selectores de variación.

UTF8

Se aplica a: SQL Server 2019 (15.x) y versiones posteriores.

Especifica la codificación UTF-8 que se va a usar para los tipos de datos válidos. Para obtener más información, consulte Soporte técnico de intercalación y Unicode.

{ BIN | BIN2 }

  • BIN especifica el criterio de ordenación binario compatible con versiones anteriores que se va a usar.
  • BIN2 especifica el criterio de ordenación binario que usa la semántica de comparación de punto de código.

Comentarios

Según la versión de la intercalación, es posible que algunos puntos de código no tengan pesos de ordenación o asignaciones en mayúsculas o minúsculas definidas. Por ejemplo, compare la salida de la LOWER función cuando se le asigna el mismo carácter, pero en versiones diferentes de la misma intercalación:

SELECT NCHAR(504) COLLATE Latin1_General_CI_AS AS [Uppercase],
       NCHAR(505) COLLATE Latin1_General_CI_AS AS [Lowercase];

Este es el conjunto de resultados.

Nombre de la columna Resultado
Uppercase Ǹ
Lowercase ǹ

La primera instrucción muestra las formas mayúsculas y minúsculas de este carácter en la intercalación anterior (la intercalación no afecta a la disponibilidad de caracteres al trabajar con datos Unicode).

SELECT LOWER(NCHAR(504) COLLATE Latin1_General_CI_AS) AS [Version80Collation],
       LOWER(NCHAR(504) COLLATE Latin1_General_100_CI_AS) AS [Version100Collation];

Este es el conjunto de resultados.

Nombre de la columna Resultado
Version80Collation Ǹ
Version100Collation ǹ

La segunda instrucción muestra que se devuelve un carácter en mayúsculas cuando la intercalación es Latin1_General_CI_AS, porque este punto de código no tiene una asignación en minúsculas definida en esa intercalación.

Cuando se trabaja con algunos idiomas, puede resultar crucial evitar intercalaciones antiguas. Por ejemplo, esto es así para telegu.

En algunos casos, las intercalaciones de Windows y las intercalaciones de SQL Server pueden generar planes de consulta diferentes para la misma consulta.

Ejemplos

En la tabla siguiente se describen algunos ejemplos de nombres de intercalación de Windows.

Intercalación Descripción
Latin1_General_100_CI_AS La intercalación usa las reglas de ordenación del diccionario Latin1 General y se asigna a la página de códigos 1252. Es una intercalación de versión _100 y no distingue mayúsculas de minúsculas () y distingue acentos (CIAS).
Estonian_CS_AS La intercalación usa las reglas de ordenación del diccionario estonio y se asigna a la página de códigos 1257. Es una intercalación de versión _80 (implícita sin número de versión en el nombre) y distingue mayúsculas de minúsculas (CS) y distingue acentos (AS).
Japanese_Bushu_Kakusu_140_BIN2 La intercalación usa reglas de ordenación de puntos de código binarios y se asigna a la página de códigos 932. Se trata de una intercalación de versiones _140 y se omiten las reglas de ordenación de diccionarios de Bushu Kakusu japonés.

intercalaciones de Windows

Para enumerar las intercalaciones de Windows admitidas por la instancia de SQL Server, ejecute la consulta siguiente.

SELECT *
FROM sys.fn_helpcollations()
WHERE [name] NOT LIKE N'SQL%';