SQLShack

Este artículo explora la configuración de recopilación de bases de datos SQL de Azure y cómo cambiarla al importar la base de datos desde un archivo BACPAC.

Introducción

La intercalación se refiere a una configuración que determina el comportamiento del motor de base de datos para el conjunto de datos de caracteres a nivel de servidor, base de datos o columna. SQL Server tiene una amplia gama de intercalaciones para manejar las diferencias de idioma en diferentes partes del mundo. Proporciona reglas de clasificación, sensibilidad de mayúsculas y minúsculas para tipos de datos Unicode (nchar, nvarchar o ntext) y no Unicode (char, varchar, nvarchar).

SQL Server admite las siguientes intercalaciones.

  • Windows
  • Binario: La intercalación binaria siempre termina con _BIN o _BIN2
  • SQL Server: Estos nombres de intercalación siempre comienzan con SQL_

Para un servidor SQL tradicional (local), la configuración regional del sistema operativo determina la intercalación predeterminada. Sin embargo, puede modificar la intercalación a nivel de servidor durante la instalación de SQL Server o modificar la configuración regional del sistema operativo. La intercalación predeterminada de SQL Server es SQL_Latin1_General_CP1_CI_AS. Puede comprender estas intercalaciones en detalle haciendo referencia a la compatibilidad con intercalación y Unicode.

Requisitos

Este artículo supone que tiene un conocimiento básico de las bases de datos SQL de Azure. Si es un principiante, puede consultar los artículos existentes de SQL Azure en SQLShack. Puede utilizar el crédito gratuito de Microsoft Azure registrándose en URL https://azure.microsoft.com/en-us/free/

Recopilación de bases de datos SQL de Azure

Azure SQL DB es una oferta PaaS administrada para SQL Server con ciertas restricciones y limitaciones para realizar tareas específicas. Al igual que el servidor SQL local, Azure DB también admite varias intercalaciones. Para obtener una lista de intercalaciones compatibles con Azure SQL DB, podemos consultar el sistema.fn_helpcollations() función. Devuelve una lista de 5,508 intercalaciones. La siguiente figura le da un vistazo de la recopilación y las descripciones.

 Lista de intercalación compatible

Lista de intercalación admitida

Para Azure SQL DB, puede elegir intercalación de base de datos en la pestaña configuración adicional de crear base de datos SQL. Como se muestra a continuación, la intercalación predeterminada aparece como SQL_Latin1_General_CP1_CI_AS.

Podemos desglosar esta intercalación para entenderla.

  • SQL-Se refiere a que es una colación de SQL Server
  • Latin1_General – Esta parte define la regla de clasificación de caracteres
  • CI-Se refiere a que no distingue entre mayúsculas y minúsculas
  • YA que define la sensibilidad de acento

Especificar la intercalación al crear la base de datos

Especificar intercalación al crear la base de datos

Puede hacer clic en buscar una intercalación y buscar la intercalación específica que desea configurar para Azure DB.

Puede implementar una base de datos de Azure en un servidor lógico Azure existente. Por lo tanto, si crea una nueva base de datos de Azure con SSMS, puede definir una intercalación específica mediante la página opciones.

Verificación de intercalación en SSMS

Si usted crea una Azure SQL DB usando T-SQL, puede utilizar el COLLATE palabra clave y especifica la DB de intercalación.

1
2
3

CREAR BASE de datos MyDemoSQLDB
INTERCALAR Latin1_General_100_CS_AS_SC;
IR

debe crear la base de datos en la intercalación correcta. Es posible que las consultas SQL no funcionen correctamente debido a la falta de coincidencia de intercalación. Sin embargo, si necesita realizar modificaciones después de crear la base de datos SQL de Azure, no es sencillo. Azure SQL DB no admite el cambio de intercalación mediante la INTERCALACIÓN ALTER DATABASE. Aparece el siguiente mensaje de error si intenta cambiarlo.

1
2
3
4

Usar maestro
ir
ALTER DATABASE Azuredemodatabase
COTEJAR SQL_Latin1_General_CP1250_CI_AS

Modificar la intercalación usando la función de INTERCALACIÓN

  • Nota: No modifique ni establezca una intercalación específica hasta que tenga requisitos específicos. Nunca lo haga directamente en una base de datos de producción. Pruébelo a fondo en un entorno de base de datos inferior y, a continuación, planee proceder a la recopilación de producción

Supongamos que está implementando una base de datos SQL de Azure desde el archivo BACPAC local. Desea una intercalación diferente en la base de datos de destino.

  • Nota: Asumo que tiene una base de datos SQL de Azure activa. Si no, puede usar una cuenta de nivel gratuito para implementar su base de datos de pruebas
  • Para esta demostración de artículo, realizaremos las siguientes tareas:

    • Exporte la base de datos SQL de Azure en formato BACPAC
    • Instale el marco de aplicaciones de nivel de datos de Microsoft SQL Server (18.1)
    • Modifique el modelo.configuración de archivos xml
    • Utilice sqlpackage.exe para implementar la base de datos de Azure con intercalación actualizada
    • Verificar la intercalación de la base de datos

    Paso 1: Exportar la base de datos SQL de Azure en formato BACPAC

    En este paso, exportamos la base de datos SQL de Azure en formato BACPAC. Podemos verificar que la intercalación existente es SQL_Latin1_General_CP1_CI_AS.

     Compruebe la intercalación existente

    Para exportar, haga clic con el botón secundario en la base de datos de Azure y elija Exportar aplicación de nivel de datos…

    Exportar la base de datos SQL de Azure en formato BACPAC

    Exporte la base de datos SQL de Azure en formato BACPAC

    Especifique el directorio en guardar en el disco local.

    Guardar en disco local

    Verificar, exportar y supervisar el progreso de la aplicación de nivel de datos en formato BACPAC.

     Estado de la vista

    Estado de la vista

    Paso 2: Descargar Microsoft SQL Server Data-Tier Application Framework (18.1)

    Necesita descargar e instalar la última versión de SSDT. Vaya a URL https://www.microsoft.com/en-us/download/details.aspx?id=57784 y haga clic en Descargar.

     Descargar Marco de aplicaciones de nivel de datos de Microsoft SQL Server

    Descargue el marco de aplicaciones de nivel de datos de Microsoft SQL Server

    Seleccione la versión de archivo MSI requerida y descárguelo. Es un archivo de paquete ligero.

    Elija MSI

    Elija MSI

    Siga el asistente de instalación para configurar el marco de aplicaciones de nivel de datos de Microsoft SQL Server.

     Progreso de la instalación

    Progreso de la instalación

    Mensaje de progreso de la instalación

    Mensaje de progreso de la instalación

    Instalación terminada

    Instalación terminada

    Paso 3: Cambiar el nombre de la. Archivo BACPAC a .ZIP

    En este paso, cambiamos el nombre del archivo de paquete BACPAC exportado a un formato ZIP. Para hacerlo, haga clic con el botón derecho en el BACPAC importado y cambie la extensión a ZIP. El tipo de archivo se comprime (comprime) después de cambiar la extensión, como se muestra en la siguiente figura.

    Cambie el nombre del .Archivo BACPAC a .ZIP

    Cambiar el nombre de la .Archivo BACPAC a .ZIP

    Haga clic con el botón derecho en el archivo comprimido y extráigalo. En la carpeta extraída, encontrará un modelo.xml, copia el modelo.xml a otro directorio, como el C:\Temp carpeta.Modelo

    , archivo xml

    Modelo, archivo xml

    Abra el modelo.xml desde C:\Temp\Model.xml y modificar la intercalación de BD. En la siguiente figura se muestran las intercalaciones antiguas y nuevas para la base de datos SQL de Azure. Aquí usamos la intercalación SQL con sensibilidad a mayúsculas y minúsculas.

     Modificar la intercalación en el modelo.xml

    Modificar la intercalación en el modelo.xml

    Paso 4: Implemente la base de datos de Azure mediante sqlpackage.exe

    Aquí, vaya al directorio C:\Program Archivos\Microsoft SQL Server \ 150 \ DAC \ bin en el símbolo del sistema. Usamos el paquete sql.exe para importar el BACPAC con el parámetro / ModelFilePath. Anula la configuración del archivo de modelo BACPAC con el archivo específico de este parámetro.

    Parámetros requeridos:

    • /tsn: Especifique el FQDN de Azure SQL Server en el que queremos importar este archivo BACPAC. En mi caso, es azuredemosqldemo.database.windows.net
    • / tdn: Es el nuevo nombre de la base de datos SQL de Azure. No puede importar BACPAC en una base de datos existente
    • /tu: Especifique el nombre de usuario de administrador para conectarse con Azure SQL Server e implementar la base de datos
    • / tp: Introduzca la contraseña para el usuario administrador
    • / sf: Especifique la ubicación del archivo BACPAC
    • / ModelFilePath: Introduzca el modelo actualizado.Ruta del archivo XML

    Anteriormente, cambiamos la extensión del archivo BACPAC a ZIP. Tenemos que volver a cambiarlo a BACPAC para ejecutar el paquete sql.comando exe.

    Para modificar la intercalación en el BACPAC, ejecute el siguiente comando en un símbolo del sistema.

    paquete sql.exe /Acción:Importación /tsn:azuredemosqldemo.database.windows.net /tdn:azuredemodatabasenew /tu:sqladmin /tp:******* /sf:C:\Temp\azuredemodatabase.BACPAC / ModelFilePath: C: \ Temp \ model.xml

    Aparece un mensaje de advertencia:

    » Sobreescribir el modelo.xml usando archivo ‘C:\Temp\model.xml». El uso de esta configuración puede provocar un error de implementación y/o una pérdida de datos involuntaria. Esta configuración se usa solo para solucionar problemas con la publicación, importación o generación de scripts»

    Inicia la importación de datos, procesa tablas e implementa la base de datos en ella. El tiempo de implementación de la base de datos depende del número de tablas, el tamaño de los datos y los índices.

     implemente la base de datos utilizando sqlpackage.exe

    Al final, se obtiene la base de datos importada con éxito.

     base de datos importada correctamente

    Paso 5: Verificación

    Ahora, conéctese a Azure Database mediante SSMS y verifique la intercalación de la base de datos mediante el siguiente script.

    1
    SELECT CONVERT (varchar(256), DATABASEPROPERTYEX(‘azuredemodatabasenew’,’intercalación’));

    Como se muestra a continuación, la base de datos recién implementada utiliza la intercalación SQL_Latin1_General_CP1_CS_AS.

     Verifique la intercalación en la base de datos SQL de Azure implementada

    Ahora, inicie sesión en el portal de Azure y vea las propiedades de la base de datos. Esta base de datos tiene un nivel de precios Gen5, 2vcores de propósito general. No especificamos ningún nivel de precios al implementar la base de datos. Por lo tanto, la base de datos SQL de Azure toma el nivel de precios predeterminado.

     Ver niveles de precios

    Paso 6: Implementar una base de datos de Azure en un nivel de precios específico

    Supongamos que queremos implementar una base de datos con intercalación modificada y un nivel de precios básico. Para esta demostración, cambiamos la intercalación de BD a Latin1_General_BIN. Por lo tanto, abra el modelo.xml y cambie la intercalación como se resaltó anteriormente.

     Cambie la intercalación de DB a Latin1_General_BIN.

    Esta vez especificamos un nuevo parámetro (/p) para configurar la edición de la base de datos. Indica a Azure que implemente la base de datos en el nivel de precios específico.

    paquete sql.exe / Action: Import / tsn: azuredemosqldemo.base.windows.net /tdn: azuredemodatabasenew / tu: sqladmin /tp:******* /p:DatabaseEdition=Basic /sf: C:\Temp\azuredemodatabase.BACPAC / ModelFilePath: C: \ Temp \ model.xml

     Deploy package

    Una vez implementada la base de datos, verifique la intercalación de la base de datos. Como se muestra a continuación, utiliza la intercalación Latin1_General_BIN.

    Verificar la intercalación de DB

    Verificar la intercalación de bases de datos

    Puede conectarse al portal de Azure y verificar el nivel de precios como Básico.

    Verificar el nivel de precios

    • Nota: No debe modificar la intercalación de bases de datos sin requisitos específicos. Podría causar problemas si lo cambia arbitrariamente

    Conclusión

    En este artículo se exploró la recopilación predeterminada de bases de datos SQL de Azure y el proceso para cambiarla al importar una base de datos desde un archivo BACPAC. Puede especificar la intercalación deseada e implementar la base de datos. Sin embargo, nunca cambie la comparación a menos que tenga un requisito específico. Puede probar los pasos en su propia base de datos SQL de prueba de Azure.

    • Autor
    • Publicaciones recientes
    Rajendra Gupta
    Como capacitador certificado por MCSA y Microsoft en Gurgaon, India, con 13 años de experiencia, Rajendra trabaja para una variedad de grandes empresas que se centran en la optimización del rendimiento, el monitoreo, la alta disponibilidad y las estrategias e implementación de recuperación ante desastres. Es autor de cientos de artículos de autoridad sobre SQL Server, Azure, MySQL, Linux, Power BI, Ajuste de rendimiento, AWS/Amazon RDS, Git y tecnologías relacionadas que han sido vistos por más de 10 millones de lectores hasta la fecha.
    Es el creador de una de las mayores colecciones gratuitas en línea de artículos sobre un solo tema, con su serie de 50 partes en grupos de disponibilidad Always On de SQL Server. En base a su contribución a la comunidad de SQL Server, ha sido reconocido con varios premios, incluido el prestigioso «Mejor autor del año» de forma continua en 2020 y 2021 en SQLShack.
    Raj siempre está interesado en nuevos desafíos, por lo que si necesita ayuda de consultoría sobre cualquier tema cubierto en sus escritos, puede comunicarse con él en rajendra.gupta16 @ gmail.com
    Ver todos los mensajes de Rajendra Gupta

    Rajendra Gupta
    Últimos mensajes de Rajendra Gupta (ver todos)
    • Usar plantillas ARM para implementar instancias de contenedores de Azure con imágenes de SQL Server Linux – 21 de diciembre de 2021
    • Acceso a escritorio remoto para AWS RDS SQL Server con Amazon RDS Personalizado – 14 de diciembre de 2021
    • Almacenar archivos de SQL Server en Almacenamiento persistente para Instancias de contenedores de Azure – Diciembre 10, 2021

Deja una respuesta

Tu dirección de correo electrónico no será publicada.