Reglas de evaluación para la migración de SQL Server a Azure SQL Managed Instance

Se aplica a:Azure SQL Managed Instance

Las herramientas de migración validan la instancia de origen de SQL Server mediante la ejecución de varias reglas de evaluación. Las reglas identifican los problemas que deben solucionarse antes de migrar la base de datos de SQL Server a Azure SQL Managed Instance.

En este artículo se proporciona una lista de las reglas que se usan para evaluar la viabilidad de la migración de la base de datos de SQL Server a Azure SQL Managed Instance.

Resumen de las reglas

Título de la regla Nivel Category Detalles
AnalysisCommandJob Instancia Advertencia No se admite el paso de trabajo AnalysisCommand en Azure SQL Managed Instance.
AnalysisQueryJob Instancia Advertencia No se admite el paso de trabajo AnalysisQuery en Azure SQL Managed Instance.
AssemblyFromFile Base de datos Incidencia No se admiten "CREATE ASSEMBLY" y "ALTER ASSEMBLY" con un parámetro de archivo en Azure SQL Managed Instance.
BulkInsert Base de datos Incidencia No se admite BULK INSERT con orígenes de datos de blobs que no son de Azure en Azure SQL Managed Instance.
ClrStrictSecurity Base de datos Advertencia Los ensamblados CLR marcados como SAFE o EXTERNAL_ACCESS se consideran UNSAFE.
ComputeClause Base de datos Advertencia La cláusula COMPUTE ya no se admite y se ha quitado.
CryptographicProvider Base de datos Incidencia Se encontró un uso de "CREATE CRYPTOGRAPHIC PROVIDER" o "ALTER CRYPTOGRAPHIC PROVIDER". Esto no se admite en Azure SQL Managed Instance.
DatabasePrincipalAlias Base de datos Incidencia SYS.DATABASE_PRINCIPAL_ALIASES ya no se admite y se ha quitado.
DbCompatLevelLowerThan100 Base de datos Advertencia No se admite el nivel de compatibilidad de la base de datos por debajo de 100.
DisableDefCNSTCHK Base de datos Incidencia Ya no se admite DISABLE_DEF_CNST_CHK de la opción SET y se ha quitado.
FastFirstRowHint Base de datos Advertencia La sugerencia de consulta FASTFIRSTROW ya no se admite y se ha quitado.
Secuencia de archivos Base de datos Incidencia FILESTREAM y Filetable no se admiten en Azure SQL Managed Instance.
LinkedServerWithNonSQLProvider Base de datos Incidencia El servidor vinculado con un proveedor que no es de SQL Server no se admite en Azure SQL Managed Instance.
MergeJob Instancia Advertencia No se admite el paso de trabajo de combinación en Azure SQL Managed Instance.
MIDatabaseSize Base de datos Incidencia Azure SQL Managed Instance no admite un tamaño de base de datos superior a 16 TB.
MIHeterogeneousMSDTCTransactSQL Base de datos Incidencia No se admite BEGIN DISTRIBUTED TRANSACTION con un servidor remoto que no sea SQL Server en Azure SQL Managed Instance.
MIHomogeneousMSDTCTransactSQL Base de datos Incidencia Se admite BEGIN DISTRIBUTED TRANSACTION en varios servidores para Azure SQL Managed Instance.
MIInstanceSize Instancia Advertencia El tamaño máximo de almacenamiento de la instancia en Azure SQL Managed Instance no puede ser superior a 8 TB.
MultipleLogFiles Base de datos Incidencia Azure SQL Managed Instance no admite varios archivos de registro.
NextColumn Base de datos Incidencia Las tablas y columnas denominadas NEXT da lugar a un error en Azure SQL Managed Instance.
NonANSILeftOuterJoinSyntax Base de datos Advertencia Ya no se admite la combinación externa izquierda de estilo no ANSI y se ha quitado.
NonANSIRightOuterJoinSyntax Base de datos Advertencia Ya no se admite la combinación externa derecha de estilo no ANSI y se ha quitado.
NumDbExceeds100 Instancia Advertencia Azure SQL Managed Instance admite un máximo de 100 bases de datos por instancia.
OpenRowsetWithNonBlobDataSourceBulk Base de datos Incidencia OpenRowSet no se admite en operaciones masivas con orígenes de datos que no son Azure Blob Storage en Azure SQL Managed Instance.
OpenRowsetWithNonSQLProvider Base de datos Incidencia No se admite OpenRowSet con un proveedor que no es de SQL en Azure SQL Managed Instance.
PowerShellJob Instancia Advertencia No se admite el paso de trabajo de PowerShell en Azure SQL Managed Instance.
QueueReaderJob Instancia Advertencia No se admite el paso de trabajo de lector de cola en Azure SQL Managed Instance.
RAISERROR Base de datos Advertencia Las llamadas a RAISERROR de estilo heredado se deben reemplazar por equivalentes modernos.
SqlMail Base de datos Advertencia SQL Mail ya no se admite.
SystemProcedures110 Base de datos Advertencia Se han detectado instrucciones que hacen referencia a procedimientos almacenados del sistema que se han quitado y no están disponibles en Azure SQL Managed Instance.
TraceFlags Instancia Advertencia Se encontraron marcas de seguimiento no admitidas en Azure SQL Managed Instance.
TransactSqlJob Instancia Advertencia El paso de trabajo TSQL incluye comandos no admitidos en Azure SQL Managed Instance.
WindowsAuthentication Instancia Advertencia Los usuarios de base de datos asignados con la autenticación de Windows (seguridad integrada) no se admiten en Azure SQL Managed Instance.
XpCmdshell Base de datos Incidencia No se admite xp_cmdshell en Azure SQL Managed Instance.

Trabajo AnalysisCommand

Título: No se admite el paso de trabajo AnalysisCommand en Azure SQL Managed Instance.
Categoría: Advertencia

Descripción
Se trata de un paso de trabajo que ejecuta un comando de Analysis Services. No se admite el paso de trabajo AnalysisCommand en Azure SQL Managed Instance.

Recomendación
Revise la sección de objetos afectados en Azure Migrate para ver todos los trabajos que usan el paso de trabajo de comando de Analysis Services y evaluar si el paso de trabajo o el objeto afectado se pueden quitar. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Diferencias del Agente SQL Server en Azure SQL Managed Instance

Trabajo AnalysisQuery

Título: No se admite el paso de trabajo AnalysisQuery en Azure SQL Managed Instance.
Categoría: Advertencia

Descripción
Se trata de un paso de trabajo que ejecuta una consulta de Analysis Services. No se admite el paso de trabajo AnalysisQuery en Azure SQL Managed Instance.

Recomendación
Revise la sección de objetos afectados en Azure Migrate para ver todos los trabajos que usan el paso de trabajo de consulta de Analysis Services y evaluar si el paso de trabajo o el objeto afectado se pueden quitar. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Diferencias del Agente SQL Server en Azure SQL Managed Instance

Ensamblado del archivo

Título: No se admiten "CREATE ASSEMBLY" y "ALTER ASSEMBLY" con un parámetro de archivo en Azure SQL Managed Instance.
Categoría: Problema

Descripción
Azure SQL Managed Instance no admite CREATE ASSEMBLY ni ALTER ASSEMBLY con un parámetro de archivo. Se admite un parámetro binario. Consulte la sección Objetos afectados para el objeto específico donde se usa el parámetro de archivo.

Recomendación
Revise los objetos mediante CREATE ASSEMBLY o ALTER ASSEMBLY con un parámetro de archivo. Si alguno de estos objetos es necesario, convierta el parámetro de archivo en un parámetro binario. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Diferencias de CLR en Azure SQL Managed Instance

BULK INSERT

Título: No se admite BULK INSERT con orígenes de datos de blobs que no son de Azure en Azure SQL Managed Instance.
Categoría: Problema

Descripción
Azure SQL Managed Instance no puede acceder a recursos compartidos de archivos ni a carpetas de Windows. Vea en la sección "Objetos afectados" los usos específicos de las instrucciones BULK INSERT que no hacen referencia a un BLOB de Azure. Los objetos con "BULK INSERT" en los que el origen no sea Azure Blob Storage no funcionan después de migrar a Azure SQL Managed Instance.

Recomendación
Tiene que convertir las instrucciones BULK INSERT que usen archivos locales o recursos compartidos de archivo para que utilicen archivos de Azure Blob Storage al realizar la migración a Azure SQL Managed Instance.

Más información: Diferencias de inserción masiva y OPENROWSET en Azure SQL Managed Instance

Seguridad CLR

Título: Los ensamblados CLR marcados como SAFE o EXTERNAL_ACCESS se consideran UNSAFE
Categoría: Advertencia

Descripción
Se aplica el modo de seguridad estricta de CLR en Azure SQL Managed Instance. Este modo está habilitado de manera predeterminada y presenta cambios importantes para las bases de datos que contienen ensamblados CLR definidos por el usuario y marcados como SAFE o EXTERNAL_ACCESS.

Recomendación
CLR usa la seguridad de acceso del código (CAS) de .NET Framework, que ya no se admite como un límite de seguridad. A partir del motor de base de datos de SQL Server 2017 (14.x), se introduce una opción sp_configure denominada clr strict security para mejorar la seguridad de los ensamblados CLR. La opción clr strict security está habilitada de manera predeterminada y trata los ensamblados CLR SAFE y EXTERNAL_ACCESS como si estuvieran marcados como UNSAFE. Cuando la opción clr strict security está deshabilitada, un ensamblado CLR creado con PERMISSION_SET = SAFE puede acceder a los recursos externos del sistema, llamar a código no administrado y adquirir privilegios sysadmin. Después de habilitar la seguridad estricta, los ensamblados que no estén firmados no podrán cargarse. Además, si una base de datos tiene ensamblados SAFE o EXTERNAL_ACCESS, se pueden completar las instrucciones RESTORE o ATTACH DATABASE, pero es posible que no se puedan cargar los ensamblados. Para cargarlos, debe modificar o eliminar y volver a crear cada ensamblado para que se firme con un certificado o clave asimétrica que tenga un inicio de sesión correspondiente con el permiso UNSAFE ASSEMBLY en el servidor.

Más información: CLR strict security

Cláusula COMPUTE

Título: La cláusula COMPUTE ya no se admite y se ha quitado.
Categoría: Advertencia

Descripción
La cláusula COMPUTE genera totales que aparecen como columnas de resumen adicionales al final del conjunto de resultados. Sin embargo, esta cláusula ya no se admite en Azure SQL Managed Instance.

Recomendación
En su lugar, se debe volver a escribir el módulo T-SQL con el operador ROLLUP. En el siguiente código se muestra cómo se puede reemplazar COMPUTE por ROLLUP:

USE AdventureWorks2022;GO;

SELECT SalesOrderID,
    UnitPrice,
    UnitPriceDiscount
FROM Sales.SalesOrderDetail
ORDER BY SalesOrderID COMPUTE SUM(UnitPrice),
    SUM(UnitPriceDiscount) BY SalesOrderID GO;

SELECT SalesOrderID,
    UnitPrice,
    UnitPriceDiscount,
    SUM(UnitPrice) AS UnitPrice,
    SUM(UnitPriceDiscount) AS UnitPriceDiscount
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID,
    UnitPrice,
    UnitPriceDiscount
WITH ROLLUP;

Más información: Funcionalidad del motor de base de datos descontinuada en SQL Server

Proveedor de servicios criptográficos

Título: Se ha encontrado un uso de CREATE CRYPTOGRAPHIC PROVIDER o ALTER CRYPTOGRAPHIC PROVIDER, que no se admite en Azure SQL Managed Instance.
Categoría: Problema

Descripción
Azure SQL Managed Instance no es compatible con las instrucciones CRYPTOGRAPHIC PROVIDER porque no puede acceder a los archivos. Consulte en la sección de objetos afectados los usos específicos de las instrucciones CRYPTOGRAPHIC PROVIDER. Los objetos con "CREATE CRYPTOGRAPHIC PROVIDER" o "ALTER CRYPTOGRAPHIC PROVIDER" no funcionan correctamente después de migrar a Azure SQL Managed Instance.

Recomendación
Revise los objetos con "CREATE CRYPTOGRAPHIC PROVIDER" o "ALTER CRYPTOGRAPHIC PROVIDER". En los objetos necesarios, quite los usos de estas características. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Diferencias de proveedor de servicios criptográficos en Azure SQL Managed Instance

Compatibilidad de bases de datos

Título: No se admite el nivel de compatibilidad de la base de datos por debajo de 100
Categoría: Advertencia

Descripción
El nivel de compatibilidad de la base de datos es una preciada herramienta que sirve para ayudar con la modernización de las bases de datos, ya que permite actualizar el motor de base de datos de SQL Server mientras se conserva el estado funcional de las aplicaciones conectadas porque se mantiene el mismo nivel de compatibilidad de la base de datos previo a la actualización. Azure SQL Managed Instance no admite niveles de compatibilidad por debajo de 100. Cuando la base de datos con un nivel de compatibilidad inferior a 100 se restaura en Azure SQL Managed Instance, el nivel de compatibilidad se actualiza a 100.

Recomendación
Evalúe si la funcionalidad de la aplicación está intacta cuando el nivel de compatibilidad de la base de datos se actualiza a 100 en Azure SQL Managed Instance. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Niveles de compatibilidad admitidos en Azure SQL Managed Instance

Alias de entidad de seguridad de base de datos

Título: SYS.DATABASE_PRINCIPAL_ALIASES ya no se admite y se ha quitado.
Categoría: Problema

Descripción
SYS.DATABASE_PRINCIPAL_ALIASES ya no se ha admite y se ha quitado de Azure SQL Managed Instance.

Recomendación
Utilice roles en lugar de alias.

Más información: Funcionalidad del motor de base de datos descontinuada en SQL Server

Opción DISABLE_DEF_CNST_CHK

Título: Ya no se admite DISABLE_DEF_CNST_CHK de la opción SET y se ha quitado.
Categoría: Problema

Descripción
Ya no se admite DISABLE_DEF_CNST_CHK de la opción SET y se ha quitado de Azure SQL Managed Instance.

Más información: Funcionalidad del motor de base de datos descontinuada en SQL Server

Sugerencia FASTFIRSTROW

Título: La sugerencia de consulta FASTFIRSTROW ya no se admite y se ha quitado.
Categoría: Advertencia

Descripción
La sugerencia de consulta FASTFIRSTROW ya no se admite y se ha quitado de Azure SQL Managed Instance.

Recomendación
En lugar de la sugerencia de consulta FASTFIRSTROW, use OPTION (FAST n).

Más información: Funcionalidad del motor de base de datos descontinuada en SQL Server

FILESTREAM

Título: FILESTREAM y FileTable no se admiten en Azure SQL Managed Instance.
Categoría: Problema

Descripción
La característica FILESTREAM, que permite almacenar datos no estructurados, como documentos de texto, imágenes y vídeos, en el sistema de archivos NTFS, no se admite en Azure SQL Managed Instance. Esta base de datos no se puede migrar porque la copia de seguridad que contiene los grupos de archivos FILESTREAM no se puede restaurar en Azure SQL Managed Instance.

Recomendación
Cargue los archivos no estructurados en Azure Blob Storage y almacene los metadatos relacionados con estos archivos (nombre, tipo, ubicación de dirección URL, clave de almacenamiento, etc.) en Azure SQL Managed Instance. Es posible que tenga que volver a diseñar la aplicación para habilitar la transmisión de blobs desde la instancia de Azure SQL Managed Instance y hacia ella. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Blog de la transmisión de blobs hacia la instancia de Azure SQL y desde ella

MS DTC heterogéneo

Título: No se admite BEGIN DISTRIBUTED TRANSACTION con un servidor remoto que no sea SQL Server en Azure SQL Managed Instance.
Categoría: Problema

Descripción
La transacción distribuida iniciada por Transact-SQL BEGIN DISTRIBUTED TRANSACTION y administrada por el Coordinador de transacciones distribuidas de Microsoft (MS DTC) no se admite en Azure SQL Managed Instance si el servidor remoto no es SQL Server.

Recomendación
Revise la sección de objetos afectados en Azure Migrate para ver todos los objetos que usan BEGIN DISTRUBUTED TRANSACTION. Considere la posibilidad de migrar las bases de datos de participantes a Azure SQL Managed Instance donde se admiten las transacciones distribuidas entre varias instancias. Para obtener más información, consulte Transacciones entre varios servidores de Azure SQL Managed Instance.

También puede migrar a SQL Server en la máquina virtual de Azure.

MS DTC homogéneo

Título: Se admite BEGIN DISTRIBUTED TRANSACTION en varios servidores para Azure SQL Managed Instance.
Categoría: Problema

Descripción
La transacción distribuida iniciada por Transact SQL BEGIN DISTRIBUTED TRANSACTION y administrada por el Coordinador de transacciones distribuidas de Microsoft (MS DTC) se admite en varios servidores de Azure SQL Managed Instance.

Recomendación
Revise la sección de objetos afectados en Azure Migrate para ver todos los objetos que usan BEGIN DISTRUBUTED TRANSACTION. Considere la posibilidad de migrar las bases de datos de participantes a Azure SQL Managed Instance donde se admiten las transacciones distribuidas entre varias instancias. Para obtener más información, consulte Transacciones entre varios servidores de Azure SQL Managed Instance.

También puede migrar a SQL Server en la máquina virtual de Azure.

Servidor vinculado (proveedor que no es de SQL)

Título: El servidor vinculado con un proveedor que no es de SQL Server no se admite en Azure SQL Managed Instance.
Categoría: Problema

Descripción
Los servidores vinculados permiten al Motor de base de datos de SQL Server ejecutar comandos en orígenes de datos OLE DB fuera de la instancia de SQL Server. El servidor vinculado con un proveedor que no es de SQL Server no se admite en Azure SQL Managed Instance.

Recomendación
Azure SQL Managed Instance no admite la funcionalidad de servidor vinculado si el proveedor del servidor remoto no es SQL Server, como Oracle, Sybase, etc.

Se recomiendan las siguientes acciones para eliminar la necesidad de servidores vinculados:

  • Identifique las bases de datos dependientes de instancias remotas que no son SQL Server y considere la posibilidad de moverlas a la base de datos que se está migrando.
  • Migre las bases de datos dependientes a destinos compatibles, como SQL Managed Instance, SQL Database, Azure Synapse e instancias de SQL Server.
  • Considere la posibilidad de crear un servidor vinculado entre Azure SQL Managed Instance y SQL Server en una máquina virtual de Azure (máquina virtual de SQL). A continuación, desde la máquina virtual de SQL, cree un servidor vinculado a Oracle, Sybase, etc. Este enfoque implica dos saltos, pero se puede usar como solución temporal.
  • También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Diferencias de servidor vinculado en Azure SQL Managed Instance

Trabajo de mezcla

Título: No se admite el paso de trabajo de mezcla en Azure SQL Managed Instance.
Categoría: Advertencia

Descripción
Se trata de un paso de trabajo que activa el Agente de mezcla de replicación. El Agente de mezcla de replicación es una utilidad ejecutable que aplica la instantánea inicial contenida en las tablas de base de datos a los Suscriptores. También mezcla los cambios incrementales de los datos que tienen lugar en el publicador después de la creación de la instantánea inicial y reconcilia los conflictos según las reglas configuradas por el usuario o mediante un solucionador personalizado creado por el usuario. No se admite el paso de trabajo de combinación en Azure SQL Managed Instance.

Recomendación
Revise la sección de objetos afectados en Azure Migrate para ver todos los trabajos que usan el paso de trabajo de mezcla y evaluar si el paso de trabajo o el objeto afectado se pueden quitar. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Diferencias del Agente SQL Server en Azure SQL Managed Instance

Tamaño de la base de datos MI

Título: Azure SQL Managed Instance no admite un tamaño de base de datos superior a 16 TB.
Categoría: Problema

Descripción
El tamaño de la base de datos es mayor que el almacenamiento reservado máximo de la instancia. Esta base de datos no se puede seleccionar para la migración, ya que el tamaño ha superado el límite permitido.

Recomendación
Evalúe si los datos se pueden archivar comprimidos o particionados en varias bases de datos. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Características de hardware de Azure SQL Managed Instance

Tamaño de instancia MI

Título: El tamaño máximo de almacenamiento de la instancia en Azure SQL Managed Instance no puede ser superior a 8 TB.
Categoría: Advertencia

Descripción
El tamaño de todas las bases de datos es mayor que el almacenamiento reservado máximo de la instancia.

Recomendación
Considere la posibilidad de migrar las bases de datos a diferentes instancias de Azure SQL Managed Instance o a SQL Server en la máquina virtual de Azure si todas las bases de datos deben existir en la misma instancia.

Más información: Características de hardware de Azure SQL Managed Instance

Varios archivos de registro

Título: Azure SQL Managed Instance no admite varios archivos de registro.
Categoría: Problema

Descripción
SQL Server permite que una base de datos registre en varios archivos. Esta base de datos tiene varios archivos de registro que no se admiten en Azure SQL Managed Instance. **Esta base de datos no se puede migrar porque no se puede restaurar la copia de seguridad en Azure SQL Managed Instance.
**

Recomendación
Azure SQL Managed Instance solo admite un único registro por base de datos. Debe eliminar todos los archivos de registro excepto uno antes de migrar esta base de datos a Azure:

ALTER DATABASE [database_name] REMOVE FILE [log_file_name]

Más información: Opciones de base de datos no admitidas en Azure SQL Managed Instance

Columna Next

Título: Las tablas y columnas denominadas NEXT darán lugar a un error en Azure SQL Managed Instance.
Categoría: Problema

Descripción
Se detectaron tablas o columnas denominadas NEXT. Las secuencias, que se introdujeron en Microsoft SQL Server, usan la función NEXT VALUE FOR del estándar ANSI. Las tablas o columnas denominadas NEXT y las columnas con alias VALUE en las que se ha omitido el estándar ANSI AS pueden producir un error.

Recomendación
Reescriba las instrucciones para incluir la palabra clave AS del estándar ANSI cuando asigne un alias a una tabla o columna. Por ejemplo, cuando un columna se denomina NEXT y tiene el alias VALUE, la consulta SELECT NEXT VALUE FROM TABLE produce un error y debe reescribirse como SELECT NEXT AS VALUE FROM TABLE. Del mismo modo, para una tabla denominada NEXT y con el alias VALUE, la consulta SELECT Col1 FROM NEXT VALUE produce un error y se debe reescribir como SELECT Col1 FROM NEXT AS VALUE.

Combinación externa izquierda de estilo no ANSI

Título: Ya no se admite la combinación externa izquierda de estilo no ANSI y se ha quitado.
Categoría: Advertencia

Descripción
La combinación externa izquierda de estilo no ANSI ya no se admite y se ha quitado de Azure SQL Managed Instance.

Recomendación
Utilice la sintaxis de unión de ANSI.

Más información: Funcionalidad del motor de base de datos descontinuada en SQL Server

Combinación externa derecha de estilo no ANSI

Título: Ya no se admite la combinación externa derecha de estilo no ANSI y se ha quitado.
Categoría: Advertencia

Descripción
La combinación externa derecha de estilo no ANSI ya no se admite y se ha quitado de Azure SQL Managed Instance.

Más información: Funcionalidad del motor de base de datos descontinuada en SQL Server

Recomendación
Utilice la sintaxis de unión de ANSI.

Las bases de datos superan las 100

Título: Azure SQL Managed Instance admite un máximo de 100 bases de datos por instancia.
Categoría: Advertencia

Descripción
El número máximo de bases de datos admitidas en Azure SQL Managed Instance es 100, a menos que se alcance el límite de tamaño de almacenamiento de la instancia.

Recomendación
Considere la posibilidad de migrar las bases de datos a diferentes instancias de Azure SQL Managed Instance o a SQL Server en la máquina virtual de Azure si todas las bases de datos deben existir en la misma instancia.

Más información: Límites de recursos de Azure SQL Managed Instance

OPENROWSET (origen de datos que no son BLOb)

Título: OpenRowSet no se admite en operaciones masivas con orígenes de datos que no son Azure Blob Storage en Azure SQL Managed Instance.
Categoría: Problema

Descripción
OPENROWSET admite operaciones masivas a través de un proveedor integrado BULK que permite que los datos se lean y se devuelvan en forma de conjunto de filas. No se admite OPENROWSET con orígenes de datos que no son Azure Blob Storage en Azure SQL Managed Instance.

Recomendación
Azure SQL Managed Instance no puede acceder a recursos compartidos de archivos ni carpetas de Windows, por lo que los archivos se deben importar desde Azure Blob Storage. Por lo tanto, solo se admite el tipo de blob DATASOURCE en la función OPENROWSET. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Diferencias de inserción masiva y OPENROWSET en Azure SQL Managed Instance

OPENROWSET (proveedor que no es de SQL)

Título: No se admite OpenRowSet con proveedor que no es de SQL en Azure SQL Managed Instance.
Categoría: Problema

Descripción
Es un método alternativo para tener acceso a las tablas de un servidor vinculado y, al mismo tiempo, es un método ad hoc para conectarse y tener acceso a datos remotos utilizando OLE DB. No se admite OpenRowSet con un proveedor que no es de SQL en Azure SQL Managed Instance.

Recomendación
La función OPENROWSET puede utilizarse para ejecutar consultas solo en instancias de SQL Server (ya sean administradas, locales o en máquinas virtuales). Se admiten los proveedores SQLNCLI, SQLNCLI11, SQLOLEDB y MSOLEDBSQL (recomendados). Se recomienda el Controlador Microsoft OLE DB para SQL Server para el nuevo desarrollo.

La acción recomendada es identificar las bases de datos dependientes de instancias remotas que no son SQL Server y considere la posibilidad de moverlas a la instancia que se está migrando.

Más información: Diferencias de inserción masiva y OPENROWSET en Azure SQL Managed Instance

Trabajo de PowerShell

Título: No se admite el paso de trabajo de PowerShell en Azure SQL Managed Instance.
Categoría: Advertencia

Descripción
Se trata de un paso de trabajo que ejecuta un script de PowerShell. No se admite el paso de trabajo de PowerShell en Azure SQL Managed Instance.

Recomendación
Revise la sección de objetos afectados en Azure Migrate para ver todos los trabajos que usan el paso de trabajo de PowerShell y evaluar si el paso de trabajo o el objeto afectado se pueden quitar. Evalúe si se puede usar Azure Automation. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Diferencias del Agente SQL Server en Azure SQL Managed Instance

Trabajo de lector de cola

Título: No se admite el paso de trabajo de lector de cola en Azure SQL Managed Instance.
Categoría: Advertencia

Descripción
Se trata de un paso de trabajo que activa el Agente de lectura de cola de replicación. El Agente de lectura de cola de replicación es un ejecutable que lee los mensajes almacenados en una cola de Microsoft SQL Server o una cola de mensajes de Microsoft y luego aplica esos mensajes al publicador. El Agente de lectura de cola se utiliza con la instantánea y las publicaciones transaccionales que permiten la actualización en cola. No se admite el paso de trabajo de lector de cola en Azure SQL Managed Instance.

Recomendación
Revise la sección de objetos afectados en Azure Migrate para ver todos los trabajos que usan el paso de trabajo de lector de cola y evaluar si el paso de trabajo o el objeto afectado se pueden quitar. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Diferencias del Agente SQL Server en Azure SQL Managed Instance

RAISERROR

Título: Las llamadas a RAISERROR de estilo heredado se deben reemplazar por equivalentes modernos.
Categoría: Advertencia

Descripción
Las llamadas a RAISERROR, como el ejemplo siguiente, se denominan de estilo heredado porque no incluyen las comas y los paréntesis. RAISERROR 50001 'this is a test'. Este método de llamada a RAISERROR ya no se admite y se ha quitado de Azure SQL Managed Instance.

Recomendación
Vuelva a escribir la instrucción con la sintaxis de RAISERROR actual o evalúe si es viable el enfoque moderno de BEGIN TRY { } END TRY BEGIN CATCH { THROW; } END CATCH.

Más información: Funcionalidad del motor de base de datos descontinuada en SQL Server

SQL Mail

Título: SQL mail ya no se admite.
Categoría: Advertencia

Descripción
SQL Mail ya no se admite y se ha quitado de Azure SQL Managed Instance.

Recomendación
Usar Database Mail.

Más información: Funcionalidad del motor de base de datos descontinuada en SQL Server

SystemProcedures110

Título: Se han detectado instrucciones que hacen referencia a procedimientos almacenados del sistema que se han quitado y no están disponibles en Azure SQL Managed Instance.
Categoría: Advertencia

Descripción
No se pueden usar en Azure SQL Managed Instance los siguientes procedimientos almacenados extendidos y del sistema no admitidos: sp_dboption, sp_addserver, sp_dropalias, sp_activedirectory_obj, sp_activedirectory_scp y sp_activedirectory_start.

Recomendación
Quite las referencias a los procedimientos del sistema no admitidos que se han quitado de Azure SQL Managed Instance.

Más información: Funcionalidad del motor de base de datos descontinuada en SQL Server

Trabajo Transact-SQL

Título: El paso de trabajo TSQL incluye comandos no admitidos en Azure SQL Managed Instance
Categoría: Advertencia

Descripción
Se trata de un paso de trabajo que ejecuta scripts de Transact-SQL en el momento programado. El paso de trabajo TSQL incluye comandos no admitidos que no se admiten en Azure SQL Managed Instance.

Recomendación
Revise la sección de objetos afectados en Azure Migrate para ver todos los trabajos que incluyen comandos no admitidos en Azure SQL Managed Instance y evaluar si el paso de trabajo o el objeto afectado se pueden quitar. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Diferencias del Agente SQL Server en Azure SQL Managed Instance

Marcas de seguimiento

Título: Se encontraron marcas de seguimiento no admitidas en Azure SQL Managed Instance
Categoría: Advertencia

Descripción
Azure SQL Managed Instance solo admite un número limitado de marcas de seguimiento globales. No se admiten marcas de seguimiento de sesión.

Recomendación
Revise la sección de objetos afectados en Azure Migrate para ver todas las marcas de seguimiento que no se admiten en Azure SQL Managed Instance y evaluar si se pueden quitar. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Marcas de seguimiento

Autenticación de Windows

Título: Los usuarios de base de datos asignados con la autenticación de Windows (seguridad integrada) no se admiten en Azure SQL Managed Instance
Categoría: Advertencia

Descripción
Azure SQL Managed Instance admite dos tipos de autenticación:

  • Autenticación de SQL, que usa un nombre de usuario y una contraseña.
  • Esta autenticación de Microsoft Entra, queusa las identidades administradas por Microsoft Entra ID (antes llamado Azure Active Directory) y es compatible con dominios administrados e integrados.

Los usuarios de base de datos asignados con la autenticación de Windows (seguridad integrada) no se admiten en Azure SQL Managed Instance.

Recomendación
Federe el Active Directory local con Microsoft Entra ID. A continuación, la identidad de Windows se puede reemplazar por las identidades equivalentes de Microsoft Entra. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Capacidades de seguridad de SQL Managed Instance

XP_cmdshell

Título: xp_cmdshell no se admite en Azure SQL Managed Instance.
Categoría: Problema

Descripción
Xp_cmdshell, que genera un shell de comandos de Windows y pasa una cadena para su ejecución, no se admite en Azure SQL Managed Instance.

Recomendación
Revise la sección de objetos afectados en Azure Migrate para ver todos los objetos que usan xp_cmdshell y evaluar si se puede quitar la referencia a xp_cmdshell o al objeto afectado. Considere la posibilidad de explorar Azure Automation que ofrece un servicio de automatización y configuración basado en la nube. También puede migrar a SQL Server en la máquina virtual de Azure.

Más información: Diferencias de procedimiento almacenado en Azure SQL Managed Instance