Cambiar el collation en un servidor sql server 2019
Collation
SQL Server es un conjunto de reglas que determina cómo se comparan, almacenan y ordenan los datos de caracteres en la base de datos. Estas reglas afectan a la sensibilidad de los datos respecto a aspectos como mayúsculas y minúsculas, acentos, y otros caracteres específicos del lenguaje.
Componentes del collation
- Sensibilidad a Mayúsculas y Minúsculas (Case Sensitivity):
CS
(Case Sensitive):abc
se considera diferente deABC
.CI
(Case Insensitive):abc
se considera igual aABC
.
- Sensibilidad a Acentos (Accent Sensitivity):
AS
(Accent Sensitive):e
se considera diferente deé
.AI
(Accent Insensitive):e
se considera igual aé
.
- Sensibilidad a Kana (Kana Sensitivity):
KS
(Kana Sensitive): Diferencia entre los caracteres Kana japoneses Hiragana y Katakana.KI
(Kana Insensitive): No diferencia entre los caracteres Kana japoneses Hiragana y Katakana.
- Sensibilidad a Tipos de Caracteres Ampliados (Width Sensitivity):
WS
(Width Sensitive): Diferencia entre caracteres de ancho completo y ancho medio (usado en algunos idiomas asiáticos).WI
(Width Insensitive): No diferencia entre caracteres de ancho completo y ancho medio.
Ejemplos de Collations
- Latin1_General_CS_AS: Sensible a mayúsculas y minúsculas, y sensible a acentos.
- SQL_Latin1_General_CP1_CI_AS: Insensible a mayúsculas y minúsculas, e insensible a acentos (este es uno de los
collations
predeterminados más comunes en instalaciones de SQL Server).
1. SQL_Latin1_General_CP1_CI_AS
Definición: Es una collation que utiliza el conjunto de caracteres de la página de códigos 1252 (Windows Latin-1) y es case-insensitive (CI), accent-sensitive (AS).
Ejemplo de uso:-- Crear una tabla con una collation específica CREATE TABLE EjemploCollation ( Nombre VARCHAR(100) COLLATE SQL_Latin1_General_CP1_CI_AS ); -- Insertar datos INSERT INTO EjemploCollation (Nombre) VALUES ('Hola'), ('hola'), ('Hóla'); -- Consultar datos SELECT * FROM EjemploCollation WHERE Nombre = 'hola';
Resultado:Nombre ------ Hola hola
2. Latin1_General_BIN
Definición: Es una collation que utiliza el conjunto de caracteres Latin1 y es case-sensitive, accent-sensitive y ordena los datos en base a los valores binarios de los caracteres.
Ejemplo de uso:-- Crear una tabla con una collation específica CREATE TABLE EjemploCollation_BIN ( Nombre VARCHAR(100) COLLATE Latin1_General_BIN ); -- Insertar datos INSERT INTO EjemploCollation_BIN (Nombre) VALUES ('Hola'), ('hola'), ('Hóla'); -- Consultar datos SELECT * FROM EjemploCollation_BIN WHERE Nombre = 'hola';
Resultado:Nombre ------ hola
3. Modern_Spanish_CI_AI
Definición: Es una collation que utiliza el conjunto de caracteres Modern Spanish y es case-insensitive (CI), accent-insensitive (AI).
Ejemplo de uso:-- Crear una tabla con una collation específica CREATE TABLE EjemploCollation_ES ( Nombre VARCHAR(100) COLLATE Modern_Spanish_CI_AI ); -- Insertar datos INSERT INTO EjemploCollation_ES (Nombre) VALUES ('Hola'), ('hola'), ('Hóla'); -- Consultar datos SELECT * FROM EjemploCollation_ES WHERE Nombre = 'hola';
Resultado:Nombre ------ Hola hola Hóla
4. Japanese_CI_AS
Definición: Es una collation que utiliza el conjunto de caracteres Japanese y es case-insensitive (CI), accent-sensitive (AS).
Ejemplo de uso:-- Crear una tabla con una collation específica CREATE TABLE EjemploCollation_JP ( Nombre VARCHAR(100) COLLATE Japanese_CI_AS ); -- Insertar datos INSERT INTO EjemploCollation_JP (Nombre) VALUES ('こんにちは'), ('コンニチハ'); -- Consultar datos SELECT * FROM EjemploCollation_JP WHERE Nombre = 'こんにちは';
Resultado: Nombre ------ こんにちは
5. Chinese_PRC_BIN
Definición: Es una collation que utiliza el conjunto de caracteres Simplified Chinese y es case-sensitive, accent-sensitive y ordena los datos en base a los valores binarios de los caracteres.
Ejemplo de uso:
-- Crear una tabla con una collation específica CREATE TABLE EjemploCollation_CN ( Nombre VARCHAR(100) COLLATE Chinese_PRC_BIN ); -- Insertar datos INSERT INTO EjemploCollation_CN (Nombre) VALUES ('你好'), ('您好'); -- Consultar datos SELECT * FROM EjemploCollation_CN WHERE Nombre = '你好';
Resultado: Nombre ------ 你好
Configuración del Collation
- Durante la Instalación del Servidor: Puedes establecer el
collation
predeterminado del servidor al instalar SQL Server. Estecollation
se aplicará a todas las bases de datos que se creen después de la instalación, a menos que se especifique uncollation
diferente para ellas. - Para una Base de Datos Específica: Puedes establecer el
collation
de una base de datos específica al crearla o modificarla más tarde.
Para cambiar el collation
en un servidor SQL Server 2019
Cambiar el collation
en una base de datos SQL Server puede ser necesario por diversas razones, como garantizar la compatibilidad de datos o mejorar el rendimiento de consultas. A continuación, se detallan los pasos necesarios para realizar este cambio de manera segura y efectiva.
1. Identifica la Base de Datos que Deseas Modificar
Primero, asegúrate de saber en qué base de datos deseas cambiar el collation
. Este es el primer paso para evitar modificar accidentalmente la base de datos incorrecta.
2. Haz una Copia de Seguridad de la Base de Datos
Antes de realizar cambios importantes en la configuración de la base de datos, siempre es recomendable hacer una copia de seguridad completa para evitar pérdida de datos.
3. Conéctate al Servidor
Usa SQL Server Management Studio (SSMS) u otra herramienta similar para conectarte al servidor donde se encuentra la base de datos que deseas modificar.
4. Consulta el Collation Actual
Ejecuta la siguiente consulta para ver el collation
actual de la base de datos:
SELECT DATABASEPROPERTYEX(‘NombreDeTuBaseDeDatos’, ‘Collation’) AS ‘CollationActual’;
5. Deshabilita las Conexiones a la Base de Datos
Si hay usuarios conectados a la base de datos que estás a punto de modificar, deberías deshabilitar las conexiones para evitar conflictos durante el cambio de collation
.
Puedes hacerlo ejecutando:
ALTER DATABASE NombreDeTuBaseDeDatos SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
6. Cambia el Collation
Utiliza la siguiente sintaxis para cambiar el collation
de la base de datos:
ALTER DATABASE NombreDeTuBaseDeDatos COLLATE NuevoCollation;
Asegúrate de reemplazar NombreDeTuBaseDeDatos
con el nombre real de tu base de datos y NuevoCollation
con el nuevo collation
que deseas aplicar.
7. Vuelve a Habilitar las Conexiones a la Base de Datos (Opcional)
Si deshabilitaste las conexiones en el paso 5, recuerda habilitarlas nuevamente después de realizar el cambio de collation
:
ALTER DATABASE NombreDeTuBaseDeDatos SET MULTI_USER;
8. Verifica el Cambio
Finalmente, ejecuta la consulta del paso 4 nuevamente para asegurarte de que el collation
se haya cambiado correctamente.
SELECT DATABASEPROPERTYEX(‘NombreDeTuBaseDeDatos’, ‘Collation’) AS ‘CollationActual’;
Siguiendo estos pasos, puedes cambiar el collation
de tu base de datos en SQL Server 2019 de manera segura y efectiva. Asegúrate de realizar una planificación adecuada y probar exhaustivamente después de realizar cualquier cambio importante en la configuración del servidor.
Como sería el rebuild del collation en la instancia de sql server 2019
Rebuild es un término que normalmente se asocia con la reconstrucción de índices en SQL Server, pero para cambiar el collation
de la instancia de SQL Server 2019 no hay un proceso directo de «rebuild» como tal. En su lugar, necesitarás reinstalar SQL Server con el collation
deseado.
Aquí tienes los pasos generales para reconstruir la instancia de SQL Server con un nuevo collation
:
- Preparación:
- Asegúrate de tener una copia de seguridad completa de todas tus bases de datos.
- Detén todos los servicios de SQL Server y cualquier otra aplicación que pueda estar utilizando SQL Server.
- Desinstalación de SQL Server:
- Desde el Panel de Control de Windows, selecciona «Desinstalar un programa».
- Encuentra tu instancia de SQL Server en la lista de programas instalados y selecciónala para desinstalarla.
- Reinstalación de SQL Server:
- Descarga el instalador de SQL Server 2019 con el
collation
deseado. - Ejecuta el instalador y sigue las instrucciones.
- Durante la instalación, asegúrate de seleccionar el
collation
que deseas para la instancia de SQL Server.
- Descarga el instalador de SQL Server 2019 con el
- Configuración:
- Después de completar la instalación, configura las opciones adicionales de SQL Server según sea necesario, como la autenticación, las carpetas de datos, etc.
- Restauración de bases de datos:
- Si hiciste una copia de seguridad de tus bases de datos antes de realizar la reinstalación, ahora es el momento de restaurarlas en la nueva instancia de SQL Server.
- Pruebas:
- Después de restaurar tus bases de datos, realiza pruebas exhaustivas para asegurarte de que todo funcione como se espera.
- Verifica que todas las aplicaciones y consultas funcionen correctamente con el nuevo
collation
.
Recuerda que este proceso es bastante invasivo y puede tener un impacto significativo en tus aplicaciones y usuarios. Asegúrate de realizar una planificación adecuada y probar exhaustivamente después de realizar cualquier cambio importante en la configuración de SQL Server.
Conclusión
Las collations en SQL Server son fundamentales para definir cómo se comparan y ordenan los datos en columnas de texto. Cada collation puede tener diferentes sensibilidades a mayúsculas, acentos y otros factores, lo que influye directamente en el comportamiento de las consultas y operaciones de la base de datos. Al elegir la collation adecuada, puedes asegurar que tu base de datos maneje los datos de texto de la forma más apropiada para tu aplicación y tus usuarios.
Enlaces de interés: