Las intercalaciones en SQL Server proporcionan reglas de clasificación, mayúsculas y minúsculas y propiedades de sensibilidad a los acentos para los datos. Una intercalación define patrones de bits que representan cada carácter en los metadatos de la base de datos. SQL Server admite el almacenamiento de objetos que tienen diferentes intercalaciones en la base de datos.
Las opciones asociadas con la intercalación se mencionan a continuación:
- Sensible a mayúsculas y minúsculas (_CS)
- Sensible a los acentos (_AS)
- Sensible a Kana (_KS)
- Sensible al ancho (_WS)
- Sensible al selector de variación (_VSS)a
- Binario (_BIN)
- Punto de código binario (_BIN2)
Nota:
cuando se elige Binario (_BIN) o Punto de código binario (_BIN2), otras opciones de intercalación no están disponibles.
Para verificar la intercalación del servidor para una instancia de SQL Server, use lo siguiente:
SELECT SERVERPROPERTY('collation');
Para encontrar una lista de intercalaciones que están disponibles en la instancia de SQL Server, use lo siguiente:
SELECT * FROM sys.fn_helpcollations();
Niveles
de intercalación: SQL Server admite los siguientes niveles de intercalación:
- Intercalaciones a nivel de servidor:
la intercalación predeterminada del servidor se establece durante la instalación de SQL Server y se convierte en la intercalación predeterminada de las bases de datos del sistema y las bases de datos de los usuarios.Una vez que haya asignado la intercalación al servidor, podrá cambiarlo solo exportando todos los objetos y datos de la base de datos, reconstruyendo la base de datos maestra e importando todos los objetos y datos de la base de datos. En lugar de cambiar la intercalación predeterminada de una instancia de SQL Server, podrá especificar la intercalación requerida una vez que cree una nueva base de datos o columna de base de datos.
Para encontrar una intercalación a nivel de servidor para un servidor SQL, use la siguiente consulta:
SELECT CONVERT(varchar, SERVERPROPERTY('collation'));
- Intercalaciones a nivel de base de
datos: la intercalación de la base de datos se utiliza para todos los metadatos dentro de la base de datos y, por lo tanto, la intercalación es la predeterminada para todas las columnas de strings, objetos temporales, nombres de variables y otras strings utilizadas en la base de datos. Si no se define una intercalación al crear la base de datos, la base de datos utilizará la intercalación del servidor predeterminada.Para crear una base de datos con intercalación, se podría usar una instrucción CREATE DATABASE:
Sintaxis –
CREATE DATABASE databasename COLLATE collationtype;
Ejemplo :
CREATE DATABASE GeekDB COLLATE Greek_CS_AI;
Para cambiar la intercalación de la base de datos del usuario, se podría usar una instrucción ALTER DATABASE:
Sintaxis –
ALTER DATABASE databasename COLLATE collationtype;
Nota: la intercalación de las bases de datos del sistema no se puede cambiar hasta que se cambie la intercalación del servidor.
Ejemplo :
ALTER DATABASE GeekDB COLLATE SQL_Latin1_General_CP1_CI_AS;
Nota:
la alteración de la intercalación a nivel de base de datos no afecta las intercalaciones a nivel de columna o de nivel de expresión. - Intercalaciones a nivel de columna: al
crear o modificar una tabla, se pueden especificar intercalaciones para cada columna de string de caracteres mediante la cláusula COLLATE. Si no se especifica la intercalación de columnas, la columna se crea con la intercalación predeterminada de la base de datos.Para cambiar la intercalación de la columna, podríamos usar la instrucción ALTER TABLE:
Sintaxis –
ALTER TABLE tablename ALTER COLUMN columnnmae COLLATE collationtype;
Ejemplo :
ALTER TABLE Geektable ALTER COLUMN namecol NVARCHAR(10) COLLATE Greek_CS_AI;
- Intercalaciones de nivel de
expresión Las intercalaciones de nivel de expresión se utilizan cuando se ejecuta una declaración y afectan la forma en que se devuelve la salida. Esto permite que los resultados de la clasificación ORDER BY sean específicos.Sintaxis –
SELECT * FROM tablename ORDER BY columnname COLLATE collationtype;
Ejemplo :
SELECT * FROM Geektab ORDER BY nname COLLATE SQL_Latin1_General_CP1_CI_AS;
Publicación traducida automáticamente
Artículo escrito por khushboogoyal499 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA