Share via


Regras de avaliação para a migração do SQL Server para a Instância Gerenciada de SQL do Azure

Aplica-se a:Instância Gerenciada de SQL do Azure

As ferramentas de migração validam a instância do SQL Server de origem executando várias regras de avaliação. As regras identificam problemas que precisam ser resolvidos antes da migração do banco de dados do SQL Server para a Instância Gerenciada de SQL do Azure.

Este artigo apresenta uma lista das regras usadas para avaliar a viabilidade de migrar o seu banco de dados do SQL Server para a Instância Gerenciada de SQL do Azure.

Resumo de regras

Título da regra Nível Categoria Detalhes
AnalysisCommandJob Instância Aviso Não há suporte para a etapa de trabalho AnalysisCommand na Instância Gerenciada de SQL do Azure.
AnalysisQueryJob Instância Aviso Não há suporte para a etapa de trabalho AnalysisQuery na Instância Gerenciada de SQL do Azure.
AssemblyFromFile Banco de dados Problema Não há suporte para 'CREATE ASSEMBLY' e 'ALTER ASSEMBLY' com um parâmetro de arquivo na Instância Gerenciada de SQL do Azure.
BulkInsert Banco de dados Problema Não há suporte para BULK INSERT com uma fonte de dados de blob que não seja do Azure na Instância Gerenciada de SQL do Azure.
ClrStrictSecurity Banco de dados Aviso Os assemblies do CLR marcados como SAFE ou EXTERNAL_ACCESS são considerados UNSAFE.
ComputeClause Banco de dados Aviso Não há mais suporte para a cláusula COMPUTE. Ela foi removida.
CryptographicProvider Banco de dados Problema Foi encontrado um uso de CREATE CRYPTOGRAPHIC PROVIDER ou ALTER CRYPTOGRAPHIC PROVIDER. Não há suporte para isso na Instância Gerenciada de SQL do Azure.
DatabasePrincipalAlias Banco de dados Problema Não há mais suporte para SYS. DATABASE_PRINCIPAL_ALIASES. Ele foi removido.
DbCompatLevelLowerThan100 Banco de dados Aviso Não há suporte para o nível de compatibilidade do banco de dados abaixo de 100.
DisableDefCNSTCHK Banco de dados Problema Não há mais suporte para a opção DISABLE_DEF_CNST_CHK de SET. Ela foi removida.
FastFirstRowHint Banco de dados Aviso Não há mais suporte para a dica de consulta FASTFIRSTROW. Ela foi removida.
FileStream Banco de dados Problema Não há suporte para FILESTREAM e FileTable na Instância Gerenciada de SQL do Azure.
LinkedServerWithNonSQLProvider Banco de dados Problema Não há suporte para servidor vinculado com um provedor que não seja do SQL Server na Instância Gerenciada de SQL do Azure.
MergeJob Instância Aviso Não há suporte para a etapa de trabalho de mesclagem na Instância Gerenciada de SQL do Azure.
MIDatabaseSize Banco de dados Problema A Instância Gerenciada de SQL do Azure não dá suporte a bancos de dados com mais de 16 TB.
MIHeterogeneousMSDTCTransactSQL Banco de dados Problema Não há suporte para BEGIN DISTRIBUTED TRANSACTION com um servidor remoto que não seja o SQL Server na Instância Gerenciada de SQL do Azure.
MIHomogeneousMSDTCTransactSQL Banco de dados Problema A Instância Gerenciada de SQL do Azure dá suporte a BEGIN DISTRIBUTED TRANSACTION em vários servidores.
MIInstanceSize Instância Aviso O tamanho máximo do armazenamento de instâncias da Instância Gerenciada de SQL do Azure não pode ser superior a 8 TB.
MultipleLogFiles Banco de dados Problema A Instância Gerenciada de SQL do Azure não é compatível com bancos de dados com vários arquivos de log.
NextColumn Banco de dados Problema As tabelas e as colunas denominadas NEXT resultam em erro na Instância Gerenciada de SQL do Azure.
NonANSILeftOuterJoinSyntax Banco de dados Aviso Não há mais suporte para a junção externa esquerda em um estilo diferente de ANSI. Ela foi removida.
NonANSIRightOuterJoinSyntax Banco de dados Aviso Não há mais suporte para a junção externa direita em estilo diferente de ANSI. Ela foi removida.
NumDbExceeds100 Instância Aviso A Instância Gerenciada de SQL do Azure dá suporte a no máximo 100 bancos de dados por instância.
OpenRowsetWithNonBlobDataSourceBulk Banco de dados Problema Não há suporte para OpenRowSet usado em operações em massa com uma fonte de dados de armazenamento de blobs que não seja do Azure na Instância Gerenciada de SQL do Azure.
OpenRowsetWithNonSQLProvider Banco de dados Problema Não há suporte para OpenRowSet com um provedor que não seja SQL na Instância Gerenciada de SQL do Azure.
PowerShellJob Instância Aviso Não há suporte para a etapa de trabalho do PowerShell na Instância Gerenciada de SQL do Azure.
QueueReaderJob Instância Aviso Não há suporte para a etapa de trabalho do Queue Reader na Instância Gerenciada de SQL do Azure.
RAISERROR Banco de dados Aviso As chamadas RAISERROR em estilo herdado devem ser substituídas por chamadas equivalentes modernas.
SqlMail Banco de dados Aviso Não há mais suporte para o SQL Mail.
SystemProcedures110 Banco de dados Aviso Foram detectadas instruções que fazem referência a procedimentos armazenados do sistema que foram removidos e não estão disponíveis na Instância Gerenciada de SQL do Azure.
TraceFlags Instância Aviso Foram encontrados sinalizadores de rastreamento sem suporte na Instância Gerenciada de SQL do Azure.
TransactSqlJob Instância Aviso A etapa de trabalho TSQL inclui comandos sem suporte na Instância Gerenciada de SQL do Azure.
WindowsAuthentication Instância Aviso A Instância Gerenciada de SQL do Azure não dá suporte aos usuários de banco de dados mapeados com autenticação do Windows (segurança integrada).
XpCmdshell Banco de dados Problema A Instância Gerenciada de SQL do Azure não dá suporte a xp_cmdshell.

Trabalho AnalysisCommand

Título: a Instância Gerenciada de SQL do Azure não dá suporte à etapa de trabalho AnalysisCommand.
Categoria: aviso

Descrição
Ela é uma etapa de trabalho que executa um comando do Analysis Services. Não há suporte para a etapa de trabalho AnalysisCommand na Instância Gerenciada de SQL do Azure.

Recomendação
Revise a seção de objetos afetados do Migrações para Azure para ver todos os trabalhos que usam a etapa de trabalho Command do Analysis Services e avalie se é possível remover a etapa de trabalho ou o objeto afetado. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: diferenças do SQL Server Agent na Instância Gerenciada de SQL do Azure

Trabalho AnalysisQuery

Título: a Instância Gerenciada de SQL do Azure não dá suporte à etapa de trabalho AnalysisQuery.
Categoria: aviso

Descrição
Ela é uma etapa de trabalho que executa uma consulta do Analysis Services. Não há suporte para a etapa de trabalho AnalysisQuery na Instância Gerenciada de SQL do Azure.

Recomendação
Revise a seção de objetos afetados do Migrações para Azure para ver todos os trabalhos que usam a etapa de trabalho Query do Analysis Services e avalie se é possível remover a etapa de trabalho ou o objeto afetado. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: diferenças do SQL Server Agent na Instância Gerenciada de SQL do Azure

Assembly do arquivo

Título: a Instância Gerenciada de SQL do Azure não dá suporte a 'CREATE ASSEMBLY' e 'ALTER ASSEMBLY' com um parâmetro de arquivo.
Categoria: problema

Descrição
A Instância Gerenciada de SQL do Azure não dá suporte a CREATE ASSEMBLY ou ALTER ASSEMBLY com um parâmetro de arquivo. Há suporte para parâmetro binário. Consulte a seção Objetos Afetados para o objeto específico em que o parâmetro de arquivo é usado.

Recomendação
Revise objetos usando CREATE ASSEMBLY ou ALTER ASSEMBLY com um parâmetro de arquivo. Se algum desses objetos for necessário, converta o parâmetro de arquivo em um parâmetro binário. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: diferenças do CLR na Instância Gerenciada de SQL do Azure

BULK INSERT

Título: a Instância Gerenciada de SQL do Azure não dá suporte a BULK INSERT com uma fonte de dados não relacionada a blobs do Azure.
Categoria: problema

Descrição
A Instância Gerenciada de SQL do Azure não pode acessar compartilhamentos de arquivos nem pastas do Windows. Confira a seção "Objetos Afetados" para ver os usos específicos das instruções BULK INSERT que não fazem referência a um blob do Azure. Quando a origem não é o Armazenamento de Blobs do Azure, os objetos com “BULK INSERT” não funcionam depois de migrar para a Instância Gerenciada de SQL do Azure.

Recomendação
Ao migrar para a Instância Gerenciada de SQL do Azure, você precisará converter as instruções BULK INSERT que usam compartilhamentos de arquivos ou arquivos locais para usar os arquivos do Armazenamento de Blobs do Azure.

Mais informações: diferenças de Bulk Insert e OPENROWSET na Instância Gerenciada de SQL do Azure

Segurança do CLR

Título: os assemblies do CLR marcados como SAFE ou EXTERNAL_ACCESS são considerados UNSAFE
Categoria: aviso

Descrição
O modo de segurança estrita do CLR é imposto na Instância Gerenciada de SQL do Azure. Esse modo é habilitado por padrão e introduz alterações interruptivas para bancos de dados que contêm assemblies do CLR definidos pelo usuário, marcados como SAFE ou EXTERNAL_ACCESS.

Recomendação
O CLR usa o CAS (Segurança de Acesso do Código) no .NET Framework, para o qual não há mais suporte como um limite de segurança. Do mecanismo de banco de dados do SQL Server 2017 (14.x) em diante, uma opção sp_configure chamada clr strict security foi introduzida para aprimorar a segurança dos assemblies do CLR. A opção clr strict security é habilitada por padrão e trata os assemblies SAFE e EXTERNAL_ACCESS do CLR como se eles fossem marcados como UNSAFE. Quando a opção clr strict security é desabilitada, um assembly do CLR criado com o PERMISSION_SET = SAFE pode conseguir acessar recursos externos do sistema, chamar um código não gerenciado e adquirir privilégios sysadmin. Depois de habilitar a segurança estrita, os assemblies que não estão assinados não serão carregados. Além disso, se um banco de dados tiver assemblies SAFE ou EXTERNAL_ACCESS, as instruções RESTORE ou ATTACH DATABASE poderão ser concluídas, mas poderá haver falha no carregamento dos assemblies. Para carregar os assemblies, você deve alterar ou remover e recriar cada assembly para que ele seja assinado com um certificado ou uma chave assimétrica que tem um logon correspondente à permissão UNSAFE ASSEMBLY do servidor.

Mais informações: Segurança estrita do CLR

Cláusula COMPUTE

Título: não há mais suporte para a cláusula COMPUTE. Ela foi removida.
Categoria: aviso

Descrição
A cláusula COMPUTE gera os totais que são exibidos como colunas de resumo adicionais ao fim do conjunto de resultados. No entanto, a Instância Gerenciada de SQL do Azure não dá mais suporte a essa cláusula.

Recomendação
É necessário reescrever o módulo T-SQL usando o operador ROLLUP. O código a seguir demonstra como substituir a cláusula 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;

Mais informações: Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server

Provedor de criptografia

Título: foi encontrado um uso de CREATE CRYPTOGRAPHIC PROVIDER ou ALTER CRYPTOGRAPHIC PROVIDER, que não é permitido na Instância Gerenciada de SQL do Azure.
Categoria: problema

Descrição
A Instância Gerenciada de SQL do Azure não dá suporte às instruções CRYPTOGRAPHIC PROVIDER porque ela não pode acessar os arquivos. Confira a seção Objetos afetados para ver usos específicos das instruções CRYPTOGRAPHIC PROVIDER. Os objetos com 'CREATE CRYPTOGRAPHIC PROVIDER' ou 'ALTER CRYPTOGRAPHIC PROVIDER' não funcionam corretamente depois da migração para a Instância Gerenciada de SQL do Azure.

Recomendação
Revise os objetos com 'CREATE CRYPTOGRAPHIC PROVIDER' ou 'ALTER CRYPTOGRAPHIC PROVIDER'. Remova os usos desses recursos de todos os objetos necessários. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: diferenças de provedor de criptografia na Instância Gerenciada de SQL do Azure

Compatibilidade do banco de dados

Título: o nível de compatibilidade do banco de dados abaixo de 100 não tem suporte.
Categoria: aviso

Descrição
O nível de compatibilidade do banco de dados é uma ferramenta valiosa que ajuda na modernização do banco de dados, permitindo a atualização do Mecanismo de Banco de Dados do SQL Server e a manutenção do status funcional dos aplicativos conectados, garantindo o mesmo nível de compatibilidade do banco de dados de antes da atualização. A Instância Gerenciada de SQL do Azure não dá suporte a níveis de compatibilidade abaixo de 100. Quando um banco de dados com nível de compatibilidade abaixo de 100 é restaurado na Instância Gerenciada de SQL do Azure, o nível de compatibilidade é atualizado para 100.

Recomendação
Avalie se a funcionalidade do aplicativo está intacta quando o nível de compatibilidade do banco de dados é atualizado para 100 na Instância Gerenciada de SQL do Azure. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: níveis de compatibilidade permitidos na Instância Gerenciada de SQL do Azure

Alias da entidade de segurança do banco de dados

Título: não há mais suporte para SYS. DATABASE_PRINCIPAL_ALIASES. Ele foi removido.
Categoria: problema

Descrição
O SYS.DATABASE_PRINCIPAL_ALIASES não é mais compatível com a Instância Gerenciada de SQL do Azure e foi removido.

Recomendação
Use funções em vez de aliases.

Mais informações: Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server

Opção DISABLE_DEF_CNST_CHK

Título: não há mais suporte para a opção DISABLE_DEF_CNST_CHK de SET. Ela foi removida.
Categoria: problema

Descrição
Não há mais suporte para a opção DISABLE_DEF_CNST_CHK de SET e ela foi removida da Instância Gerenciada de SQL do Azure.

Mais informações: Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server

Dica FASTFIRSTROW

Título: não há mais suporte para a dica de consulta FASTFIRSTROW. Ela foi removida.
Categoria: aviso

Descrição
A dica de consulta FASTFIRSTROW não é mais compatível com a Instância Gerenciada de SQL do Azure e foi removida.

Recomendação
Em vez da dica de consulta FASTFIRSTROW, use OPTION (FAST n).

Mais informações: Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server

FILESTREAM

Título: FILESTREAM e Filetable não são permitidos na Instância Gerenciada de SQL do Azure.
Categoria: problema

Descrição
O recurso FILESTREAM, que permite armazenar dados não estruturados, como documentos de texto, imagens e vídeos, no sistema de arquivos NTFS não é permitido na Instância Gerenciada de SQL do Azure. Não é possível migrar esse banco de dados, já que não é possível restaurar o backup que contém grupos de dados do FILESTREAM na Instância Gerenciada de SQL do Azure.

Recomendação
Carregue os arquivos não estruturados no armazenamento de blobs do Azure e armazene os metadados relacionados a esses arquivos (nome, tipo, local da URL, chave de armazenamento etc.) na Instância Gerenciada de SQL do Azure. Talvez você precise reprojetar o seu aplicativo para habilitar o streaming de blobs da Instância Gerenciada de SQL do Azure. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: Blog do Azure: Streaming de blobs do SQL e para ele

MS DTC heterogêneo

Título: a Instância Gerenciada de SQL do Azure não dá suporte a BEGIN DISTRIBUTED TRANSACTION com o servidor remoto não relacionado ao SQL Server.
Categoria: problema

Descrição
A Instância Gerenciada de SQL do Azure não dá suporte à transação distribuída iniciada pelo Transact SQL BEGIN DISTRIBUTED TRANSACTION e gerenciada pelo MS DTC (Coordenador de Transações Distribuídas da Microsoft) se o servidor remoto não é o SQL Server.

Recomendação
Revise a seção de objetos afetados do Migrações para Azure para ver todos os objetos que usam BEGIN DISTRUBUTED TRANSACTION. Considere migrar os bancos de dados participantes para a Instância Gerenciada de SQL do Azure, que dá suporte a transações distribuídas entre várias instâncias. Para mais informações, confira Transações em vários servidores da Instância Gerenciada de SQL do Azure.

Como alternativa, migre para o SQL Server na máquina virtual do Azure.

MS DTC homogêneo

Título: a Instância Gerenciada de SQL do Azure dá suporte a BEGIN DISTRIBUTED TRANSACTION em vários servidores.
Categoria: problema

Descrição
A Instância Gerenciada de SQL do Azure dá suporte à transação distribuída iniciada pelo Transact SQL BEGIN DISTRIBUTED TRANSACTION e gerenciada pelo MS DTC (Coordenador de Transações Distribuídas da Microsoft) em vários servidores.

Recomendação
Revise a seção de objetos afetados do Migrações para Azure para ver todos os objetos que usam BEGIN DISTRUBUTED TRANSACTION. Considere migrar os bancos de dados participantes para a Instância Gerenciada de SQL do Azure, que dá suporte a transações distribuídas entre várias instâncias. Para mais informações, confira Transações em vários servidores da Instância Gerenciada de SQL do Azure.

Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Servidor vinculado (provedor não relacionado a SQL)

Título: a Instância Gerenciada de SQL do Azure não dá suporte a um servidor vinculado com provedores não relacionados ao SQL Server.
Categoria: problema

Descrição
Os servidores vinculados permitem que o Mecanismo de Banco de Dados do SQL Server execute comandos em fontes de dados OLE DB fora da instância do SQL Server. Não há suporte para servidor vinculado com um provedor que não seja do SQL Server na Instância Gerenciada de SQL do Azure.

Recomendação
A Instância Gerenciada de SQL do Azure não dará suporte à funcionalidade de servidor vinculado se o provedor do servidor remoto não estiver relacionado ao SQL Server, como Oracle, Sybase etc.

As seguintes ações são recomendadas para eliminar a necessidade de servidores vinculados:

  • Identifique os bancos de dados dependentes nos servidores remotos não relacionados a SQL Server e considere movê-los para o banco de dados que está sendo migrado.
  • Migre os bancos de dados dependentes para destinos compatíveis, como Instância Gerenciada de SQL, Banco de Dados SQL e Azure Synapse e Instâncias do SQL Server.
  • Considere a criação de um servidor vinculado entre a Instância Gerenciada de SQL do Azure e o SQL Server na VM SQL (máquina virtual do Azure). Em seguida, na VM do SQL, crie um servidor vinculado para Oracle, Sybase etc. Essa abordagem envolve dois saltos, mas pode ser usada como uma solução temporária.
  • Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: Diferenças de servidor vinculado na Instância Gerenciada de SQL do Azure

Trabalho Merge

Título: a Instância Gerenciada de SQL do Azure não dá suporte à etapa de trabalho Merge.
Categoria: aviso

Descrição
Ela é uma etapa de trabalho que ativa o Agente de Mesclagem de replicação. O Agente de Mesclagem de Replicação é um executável utilitário que aplica o instantâneo inicial contido nas tabelas do banco de dados aos Assinantes. Ele também mescla as alterações incrementais de dados que ocorreram no Publicador depois que o instantâneo inicial foi criado e reconcilia conflitos de acordo com as regras que você configura ou usando um resolvedor personalizado que você cria. Não há suporte para a etapa de trabalho de mesclagem na Instância Gerenciada de SQL do Azure.

Recomendação
Revise a seção de objetos afetados do Migrações para Azure para ver todos os trabalhos que usam a etapa de trabalho Merge e avalie se é possível remover a etapa de trabalho ou o objeto afetado. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: diferenças do SQL Server Agent na Instância Gerenciada de SQL do Azure

Tamanho do banco de dados da Instância Gerenciada do Banco de Dados SQL do Azure

Título: Instância Gerenciada de SQL do Azure não dá suporte a bancos de dados maiores que 16 TB.
Categoria: problema

Descrição
O tamanho do banco de dados é maior que o armazenamento máximo reservado para instâncias. Não é possível escolher esse banco de dados para migração, pois o tamanho excedeu o limite permitido.

Recomendação
Avalie se é possível arquivar, compactar ou fragmentar os dados em vários bancos de dados. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: características do hardware da Instância Gerenciada de SQL do Azure

Tamanho da Instância Gerenciada do Banco de Dados SQL do Azure

Título: o tamanho máximo do armazenamento para instâncias da Instância Gerenciada de SQL do Azure não pode ser maior que 8 TB.
Categoria: aviso

Descrição
O tamanho de todos os bancos de dados é maior que o armazenamento máximo reservado para instâncias.

Recomendação
Considere migrar os bancos de dados para diferentes Instâncias Gerenciadas de SQL do Azure ou para o SQL Server na máquina virtual do Azure se todos os bancos de dados precisam existir na mesma instância.

Mais informações: características do hardware da Instância Gerenciada de SQL do Azure

Vários arquivos de log

Título: a Instância Gerenciada de SQL do Azure não dá suporte a vários arquivos de log.
Categoria: problema

Descrição
O SQL Server permite que um banco de dados registre vários arquivos. Esse banco de dados tem vários arquivos de log, o que não é permitido na Instância Gerenciada de SQL do Azure. **Não é possível migrar esse banco de dados, pois não é possível restaurar o backup na Instância Gerenciada de SQL do Azure.
**

Recomendação
A Instância Gerenciada de SQL do Azure dá suporte apenas a um só log por banco de dados. Você precisa excluir todos, exceto um, dos arquivos de log antes de migrar esse banco de dados para o Azure:

ALTER DATABASE [database_name] REMOVE FILE [log_file_name]

Mais informações: opções incompatíveis de banco de dados na Instância Gerenciada de SQL do Azure

Próxima coluna

Título: as tabelas e as colunas denominadas NEXT resultarão em erro na Instância Gerenciada de SQL do Azure.
Categoria: problema

Descrição
Foram detectadas tabelas ou colunas denominadas NEXT. As sequências, introduzidas no Microsoft SQL Server, usam a função NEXT VALUE FOR do padrão ANSI. As tabelas ou colunas chamadas NEXT e as colunas com o alias VALUE com o padrão ANSI como omitidas podem causar um erro.

Recomendação
Reescreva instruções para incluir a palavra-chave AS do padrão ANSI no alias de uma tabela ou coluna. Por exemplo, quando uma coluna é denominada NEXT e recebe o alias VALUE, a consulta SELECT NEXT VALUE FROM TABLE causa um erro e deve ser reescrita como SELECT NEXT AS VALUE FROM TABLE. Da mesma forma, para uma tabela chamada NEXT e com o alias VALUE, a consulta SELECT Col1 FROM NEXT VALUE causa um erro e deverá ser reescrita como SELECT Col1 FROM NEXT AS VALUE.

Junção externa esquerda em outro estilo que não ANSI

Título: não há mais suporte para a junção externa esquerda em um estilo diferente de ANSI. Ela foi removida.
Categoria: aviso

Descrição
Não há mais suporte para a junção externa esquerda em um estilo diferente de ANSI e ela foi removida da Instância Gerenciada de SQL do Azure.

Recomendação
Use a sintaxe de junção ANSI.

Mais informações: Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server

Junção externa direita em outro estilo que não ANSI

Título: não há mais suporte para a junção externa direita em um estilo diferente de ANSI. Ela foi removida.
Categoria: aviso

Descrição
Não há mais suporte para a junção externa direita em um estilo diferente de ANSI e ela foi removida da Instância Gerenciada de SQL do Azure.

Mais informações: Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server

Recomendação
Use a sintaxe de junção ANSI.

Os bancos de dados excedem 100

Título: a Instância Gerenciada de SQL do Azure dá suporte a no máximo 100 bancos de dados por instância.
Categoria: aviso

Descrição
O número máximo de bancos de dados permitidos na Instância Gerenciada de SQL do Azure é 100, a menos que o limite de tamanho de armazenamento para instâncias tenha sido atingido.

Recomendação
Considere migrar os bancos de dados para diferentes Instâncias Gerenciadas de SQL do Azure ou para o SQL Server na máquina virtual do Azure se todos os bancos de dados precisam existir na mesma instância.

Mais informações: limites de recursos da Instância Gerenciada de SQL do Azure

OPENROWSET (fonte de dados não relacionada a BLOB)

Título: a função OpenRowSet usada em operações em massa com fontes de dados de armazenamento não relacionadas a blobs do Azure não é permitida na Instância Gerenciada de SQL do Azure.
Categoria: problema

Descrição
A função OPENROWSET dá suporte a operações em massa por meio de um provedor em massa integrado que permite que os dados de um arquivo sejam lidos e exibidos como um conjunto de linhas. A função OPENROWSET com fontes de dados de armazenamento não relacionadas a blobs do Azure não é permitida na Instância Gerenciada de SQL do Azure.

Recomendação
Uma Instância Gerenciada de SQL do Azure não pode acessar compartilhamentos de arquivo nem pastas do Windows, então os arquivos devem ser importados do Armazenamento de Blobs do Azure. Portanto, somente o blob tipo DATASOURCE tem suporte na função OPENROWSET. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: diferenças de Bulk Insert e OPENROWSET na Instância Gerenciada de SQL do Azure

OPENROWSET (provedor não relacionado a SQL)

Título: a função OpenRowSet com um provedor não relacionado a SQL não é permitida na Instância Gerenciada de SQL do Azure.
Categoria: problema

Descrição
Este método é uma alternativa para acessar tabelas em um servidor vinculado e se trata de um método de uso único e ad hoc para conexão e acesso a dados remotos por meio de OLE DB. Não há suporte para OpenRowSet com um provedor que não seja SQL na Instância Gerenciada de SQL do Azure.

Recomendação
É possível usar a função OPENROWSET para executar consultas apenas nas instâncias do SQL Server (gerenciadas, locais ou em máquinas virtuais). Há suporte para os provedores SQLNCLI, SQLNCLI11, SQLOLEDB e MSOLEDBSQL (recomendado). O Driver do Microsoft OLE DB para SQL Server (MSOLEDBSQL) é recomendado para um novo desenvolvimento.

A ação recomendada é identificar os bancos de dados dependentes nos servidores remotos não relacionados ao SQL Server e considerar movê-los para a instância que está sendo migrada.

Mais informações: diferenças de Bulk Insert e OPENROWSET na Instância Gerenciada de SQL do Azure

Trabalho PowerShell

Título: a Instância Gerenciada de SQL do Azure não dá suporte à etapa de trabalho PowerShell.
Categoria: aviso

Descrição
Ela é uma etapa de trabalho que executa um script do PowerShell. Não há suporte para a etapa de trabalho do PowerShell na Instância Gerenciada de SQL do Azure.

Recomendação
Revise a seção de objetos afetados do Migrações para Azure para ver todos os trabalhos que usam a etapa de trabalho PowerShell e avalie se é possível remover a etapa de trabalho ou o objeto afetado. Avalie se é possível usar a Automação do Azure. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: diferenças do SQL Server Agent na Instância Gerenciada de SQL do Azure

Trabalho Queue Reader

Título: a Instância Gerenciada de SQL do Azure não dá suporte à etapa de trabalho Queue Reader.
Categoria: aviso

Descrição
Ela é uma etapa de trabalho que ativa o Queue Reader Agent de replicação. Queue Reader Agent de replicação é um executável que lê mensagens armazenadas em uma fila do Microsoft SQL Server ou do Microsoft Message Queuing e, depois, aplica essas mensagens ao publicador. O Queue Reader Agent é usado com publicações de instantâneo e transacionais que permitem atualização em fila. Não há suporte para a etapa de trabalho do Queue Reader na Instância Gerenciada de SQL do Azure.

Recomendação
Revise a seção de objetos afetados do Migrações para Azure para ver todos os trabalhos que usam a etapa de trabalho Queue Reader e avalie se é possível remover a etapa de trabalho ou o objeto afetado. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: diferenças do SQL Server Agent na Instância Gerenciada de SQL do Azure

RAISERROR

Título: as chamadas RAISERROR com estilo herdado devem ser substituídas por equivalentes modernos.
Categoria: aviso

Descrição
O estilo das chamadas RAISERROR como no exemplo abaixo é denominado como herdado porque elas não incluem as vírgulas e os parênteses. RAISERROR 50001 'this is a test'. Não há mais suporte para esse método de chamar RAISERROR e ele foi removido da Instância Gerenciada de SQL do Azure.

Recomendação
Reescreva a instrução usando a sintaxe atual da RAISERROR ou avalie se a abordagem moderna de BEGIN TRY { } END TRY BEGIN CATCH { THROW; } END CATCH é viável.

Mais informações: Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server

SQL Mail

Título: não há mais suporte para o SQL Mail.
Categoria: aviso

Descrição
Não há mais suporte para o SQL Mail e ele foi removido da Instância Gerenciada de SQL do Azure.

Recomendação
Use o Database Mail.

Mais informações: Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server

SystemProcedures110

Título: foram detectadas instruções que fazem referência a procedimentos armazenados do sistema que foram removidos e não estão disponíveis na Instância Gerenciada de SQL do Azure.
Categoria: aviso

Descrição
Os procedimentos armazenados estendidos e de sistema incompatíveis a seguir não podem ser usados na Instância Gerenciada de SQL do Azure – sp_dboption, sp_addserver, sp_dropalias,sp_activedirectory_obj, sp_activedirectory_scp e sp_activedirectory_start.

Recomendação
Remova as referências a procedimentos de sistema incompatíveis que foram removidos da Instância Gerenciada de SQL do Azure.

Mais informações: Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server

Trabalho Transact-SQL

Título: a etapa de trabalho TSQL inclui comandos não permitidos na Instância Gerenciada de SQL do Azure.
Categoria: aviso

Descrição
Ela é uma etapa de trabalho que executa scripts do Transact-SQL no horário agendado. A etapa de trabalho TSQL inclui comandos incompatíveis, não permitidos na Instância Gerenciada de SQL do Azure.

Recomendação
Revise a seção de objetos afetados do Migrações para Azure para ver todos os trabalhos que incluem comandos incompatíveis na Instância Gerenciada de SQL do Azure e avalie se é possível remover a etapa de trabalho ou o objeto afetado. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: diferenças do SQL Server Agent na Instância Gerenciada de SQL do Azure

Sinalizadores de rastreamento

Título: foram encontrados sinalizadores de rastreamento não permitidos na Instância Gerenciada de SQL do Azure.
Categoria: aviso

Descrição
A Instância Gerenciada de SQL do Azure dá suporte somente a um número limitado de sinalizadores de rastreamento globais. Não há suporte a sinalizadores de rastreamento de sessão.

Recomendação
Revise a seção de objetos afetados no Migrações para Azure para ver todos os sinalizadores de rastreamento que não são permitidos na Instância Gerenciada de SQL do Azure e avalie se é possível removê-los. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: Sinalizadores de rastreamento

Autenticação do Windows

Título: a Instância Gerenciada de SQL do Azure não dá suporte aos usuários de banco de dados mapeados com autenticação do Windows (segurança integrada).
Categoria: aviso

Descrição
A Instância Gerenciada de SQL do Azure dá suporte a dois tipos de autenticação:

  • Autenticação do SQL, que usa um nome de usuário e uma senha
  • A autenticação do Microsoft Entra, que usa identidades gerenciadas pelo Microsoft Entra ID (antigo Azure Active Directory) e tem suporte para domínios gerenciados e integrados.

A Instância Gerenciada de SQL do Azure não dá suporte aos usuários de banco de dados mapeados com autenticação do Windows (segurança integrada).

Recomendação
Faça a federação do Active Directory local com o Microsoft Entra ID. Em seguida, a identidade do Windows poderá ser substituída pelas identidades equivalentes do Microsoft Entra. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: Recursos de segurança da Instância Gerenciada de SQL do Azure

XP_cmdshell

Título: a Instância Gerenciada de SQL do Azure não dá suporte a xp_cmdshell.
Categoria: problema

Descrição
Xp_cmdshell, que gera um shell de comando do Windows e transmite uma cadeia de caracteres para execução que não é compatível com a Instância Gerenciada de SQL do Azure.

Recomendação
Revise a seção de objetos afetados no Migrações para Azure para ver todos os objetos que usam xp_cmdshell e avalie se é possível remover a referência a xp_cmdshell ou o objeto afetado. Considere explorar a Automação do Azure que oferece a automação baseada em nuvem e o serviço de configuração. Como alternativa, migre para o SQL Server na máquina virtual do Azure.

Mais informações: Diferenças de procedimento armazenado na Instância Gerenciada de SQL do Azure