Regras de avaliação para migração do SQL Server para o Banco de Dados SQL do Azure
Aplica-se a: do Banco de Dados SQL do Azure
As ferramentas de migração validam sua instância do SQL Server de origem executando várias regras de avaliação para identificar problemas que devem ser resolvidos antes de migrar seu banco de dados do SQL Server para o Banco de Dados SQL do Azure.
Este artigo fornece uma lista das regras usadas para avaliar a viabilidade de migrar seu banco de dados do SQL Server para o Banco de Dados SQL do Azure.
Resumo das regras
INSERÇÃO EM MASSA
Título: BULK INSERT com fonte de dados de blob que não seja do Azure não é suportada no Banco de Dados SQL do Azure.
Categoria: Questão
Descrição
O Banco de Dados SQL do Azure não pode acessar compartilhamentos de arquivos ou pastas do Windows. Consulte a seção "Objetos afetados" para usos específicos das instruções BULK INSERT
que não fazem referência a um blob do Azure. Os objetos com BULK INSERT
em que a origem não é o Armazenamento de Blobs do Azure não funcionam após a migração para o Banco de Dados SQL do Azure.
Recomendação
Você precisa converter instruções BULK INSERT
que usam arquivos locais ou compartilhamentos de arquivos para usar arquivos do Armazenamento de Blob do Azure ao migrar para o Banco de Dados SQL do Azure. Como alternativa, migre para o SQL Server em VMs do Azure.
Cláusula COMPUTE
Título: A cláusula COMPUTE não é mais suportada e foi removida.
Categoria: Advertência
Descrição
A cláusula COMPUTE gera totais que aparecem como colunas de resumo adicionais no final do conjunto de resultados. No entanto, essa cláusula não é mais suportada no Banco de Dados SQL do Azure.
Recomendação
O módulo T-SQL precisa ser reescrito usando o operador ROLLUP. O código abaixo demonstra como COMPUTE
pode ser substituído 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;
Para obter mais informações, consulte Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server.
Montagens CLR
Título: Não há suporte para assemblies CLR do SQL no Banco de Dados SQL do Azure
Categoria: Questão
Descrição
O Banco de Dados SQL do Azure não oferece suporte a assemblies SQL CLR.
Recomendação
Atualmente, não há como fazer isso no Banco de Dados SQL do Azure. As soluções alternativas recomendadas exigem alterações no código do aplicativo e no banco de dados para usar apenas assemblies suportados pelo Banco de Dados SQL do Azure. Como alternativa, migre para a Instância Gerenciada SQL do Azure ou para o SQL Server em Máquinas Virtuais do Azure.
Para obter mais informações, consulte Diferenças de Transact-SQL sem suporte no Banco de dados SQL.
Provedor de criptografia
Título: Foi encontrado um uso de CREATE CRYPTOGRAPHIC PROVIDER ou ALTER CRYPTOGRAPHIC PROVIDER, que não é suportado no Banco de Dados SQL do Azure
Categoria: Questão
Descrição
O Banco de Dados SQL do Azure não dá suporte a instruções CRYPTOGRAPHIC PROVIDER porque não pode acessar arquivos. Consulte a secção Objetos Afectados para os usos específicos das declarações CRYPTOGRAPHIC PROVIDER. Objetos com CREATE CRYPTOGRAPHIC PROVIDER
ou ALTER CRYPTOGRAPHIC PROVIDER
não funciona corretamente após a migração para o Banco de Dados SQL do Azure.
Recomendação
Revise objetos com CREATE CRYPTOGRAPHIC PROVIDER
ou ALTER CRYPTOGRAPHIC PROVIDER
. Em quaisquer objetos necessários, remova os usos desses recursos. Como alternativa, migre para o SQL Server em VMs do Azure.
Referências cruzadas de bases de dados
Título: Não há suporte para consultas entre bancos de dados no Banco de Dados SQL do Azure
Categoria: Questão
Descrição
Os bancos de dados neste servidor usam consultas entre bancos de dados, que não têm suporte no Banco de Dados SQL do Azure.
Recomendação
O Banco de Dados SQL do Azure não oferece suporte a consultas entre bancos de dados. Recomendam-se as seguintes ações:
- Migre os bancos de dados dependentes para o Banco de Dados SQL do Azure e use a funcionalidade Consulta de Banco de Dados Elástico (atualmente em visualização) para consultar bancos de dados SQL do Azure.
- Mova os conjuntos de dados dependentes de outros bancos de dados para o banco de dados que está sendo migrado.
- Migre para a Instância Gerenciada SQL do Azure.
- Migre para o SQL Server em Máquinas Virtuais do Azure.
Para mais informações, consulte Visão geral da consulta elástica da Base de Dados SQL do Azure (pré-visualização).
Compatibilidade com bases de dados
Título: A Base de Dados SQL do Azure não suporta níveis de compatibilidade inferiores a 100.
Categoria: Advertência
Descrição
O nível de compatibilidade do banco de dados é uma ferramenta valiosa para ajudar na modernização do banco de dados, permitindo que o Mecanismo de Banco de Dados do SQL Server seja atualizado ao mesmo tempo que mantém os aplicativos conectados funcionais, mantendo o mesmo nível de compatibilidade de banco de dados de antes da atualização. A Base de Dados SQL do Azure não suporta níveis de compatibilidade inferiores a 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 SQL do Azure. Como alternativa, migre para o SQL Server em VMs do Azure.
Correio de banco de dados
Título: O Database Mail não tem suporte no Banco de Dados SQL do Azure.
Categoria: Advertência
Descrição
Este servidor utiliza a funcionalidade Database Mail, que não tem suporte na Base de Dados SQL do Azure.
Recomendação
Considere migrar para a Instância Gerenciada SQL do Azure que ofereça suporte ao Database Mail. Como alternativa, considere usar as funções do Azure e o SendGrid para realizar a funcionalidade de email no Banco de Dados SQL do Azure.
Alias principal do banco de dados
Título: SYS.DATABASE_PRINCIPAL_ALIASES deixou de ser suportado e foi removido.
Categoria: Questão
Descrição
sys.database_principal_aliases
não tem mais suporte e foi removido do Banco de Dados SQL do Azure.
Recomendação
Use funções em vez de aliases.
Para obter mais informações, consulte Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server.
Opção DISABLE_DEF_CNST_CHK
Título: A opção SET DISABLE_DEF_CNST_CHK foi descontinuada e removida.
Categoria: Questão
Descrição
A opção SET DISABLE_DEF_CNST_CHK foi descontinuada e foi removida no Banco de Dados SQL do Azure.
Para obter mais informações, consulte Funcionalidades descontinuadas do Motor de Base de Dados no SQL Server.
Dica FASTFIRSTROW
Título: A dica de consulta FASTFIRSTROW não é mais suportada e foi removida.
Categoria: Advertência
Descrição
A dica de consulta FASTFIRSTROW não tem mais suporte e foi removida do Banco de Dados SQL do Azure.
Recomendação
Em vez da dica de consulta FASTFIRSTROW, use OPTION (FAST n).
Para obter mais informações, consulte Funcionalidade descontinuada do motor de base de dados no SQL Server.
FILESTREAM
Título: FILESTREAM não é suportado na Base de Dados SQL do Azure
Categoria: Questão
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 é suportado no Banco de Dados SQL do Azure.
Recomendação
Carregue os arquivos não estruturados no armazenamento de Blob do Azure e armazene metadados relacionados a esses arquivos (nome, tipo, local da URL, chave de armazenamento, etc.) no Banco de Dados SQL do Azure. Talvez seja necessário reformular a sua aplicação para habilitar o streaming de blobs para e a partir da Base de Dados SQL do Azure. Como alternativa, migre para o SQL Server em VMs do Azure.
Para obter mais informações, consulte Streaming de blobs de e para o blog SQL do Azure.
Servidor vinculado
Título: A funcionalidade de servidor vinculado não é suportada no Banco de Dados SQL do Azure
Categoria: Questão
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.
Recomendação
O Banco de Dados SQL do Azure não oferece suporte à funcionalidade de servidor vinculado. As seguintes ações são recomendadas para eliminar a necessidade de servidores vinculados:
- Identifique os conjuntos de dados dependentes de servidores SQL remotos e considere movê-los para o banco de dados que está sendo migrado.
- Migre os bancos de dados dependentes para o Azure e use a funcionalidade de Consulta de Banco de Dados Elástico (visualização) para realizar consultas em bancos de dados no Azure SQL Database.
Para obter mais informações, consulte Visão geral da consulta elástica do Banco de Dados SQL do Azure (visualização).
Microsoft DTC
Título: NÃO HÁ SUPORTE PARA BEGIN DISTRIBUTED TRANSACTION no Banco de Dados SQL do Azure.
Categoria: Questão
Descrição
A transação distribuída iniciada pelo Transact SQL BEGIN DISTRIBUTED TRANSACTION e gerenciada pelo Microsoft Distributed Transaction Coordinator (MS DTC) não é suportada no Banco de Dados SQL do Azure.
Recomendação
Revise a seção de objetos afetados no Azure Migrate para ver todos os objetos usando BEGIN DISTRIBUTED TRANSACTION. Considere migrar os bancos de dados participantes para a Instância Gerenciada SQL do Azure, onde há suporte para transações distribuídas em várias instâncias.
Para obter mais informações, consulte Transações em vários servidores para a Instância Gerenciada SQL do Azure.
Como alternativa, migre para o SQL Server em VMs do Azure.
OPENROWSET (em bloco)
Título: OpenRowSet usado em operação em massa com fonte de dados de armazenamento de blob não Azure não é suportado no Banco de Dados SQL do Azure.
Categoria: Questão
Descrição OPENROWSET suporta operações em massa por meio de um provedor BULK interno que permite que os dados de um arquivo sejam lidos e retornados como um conjunto de linhas. OPENROWSET com uma fonte de dados de armazenamento de Blob que não é Azure não é suportado na Base de Dados SQL do Azure.
Recomendação
O Banco de Dados SQL do Azure não pode acessar compartilhamentos de arquivos e pastas do Windows, portanto, os arquivos devem ser importados do Armazenamento de Blobs do Azure. Portanto, apenas o tipo de blob DATASOURCE é suportado pela função OPENROWSET. Como alternativa, migre para o SQL Server em Máquinas Virtuais do Azure
Para obter mais informações, consulte Resolvendo diferenças Transact-SQL durante a migração para o Banco de dados SQL.
OPENROWSET (provedor)
Título: OpenRowSet com provedor SQL ou não-SQL não é suportado na Base de Dados SQL do Azure.
Categoria: Questão
Descrição
OpenRowSet com provedor SQL ou não-SQL é uma alternativa para acessar tabelas em um servidor vinculado e é um método único e ad hoc de conexão e acesso a dados remotos usando OLE DB. OpenRowSet com provedor SQL ou não-SQL não é suportado no Banco de Dados SQL do Azure.
Recomendação
O Banco de Dados SQL do Azure dá suporte a OPENROWSET apenas para importar do Armazenamento de Blobs do Azure. Como alternativa, migre para o SQL Server em VMs do Azure.
Para obter mais informações, consulte Resolvendo diferenças Transact-SQL durante a migração para o Banco de dados SQL.
Junção externa esquerda não-ANSI
Título: A junção externa esquerda no estilo não-ANSI não é mais suportada e foi removida.
Categoria: Advertência
Descrição
A associação externa à esquerda em estilo não-ANSI deixou de ser suportada e foi removida no Azure SQL Database.
Recomendação
Use a sintaxe de junção ANSI.
Para mais informações, consulte Funcionalidade descontinuada do Motor de Base de Dados no SQL Server.
Junção externa direita não-ANSI
Título: A junção externa direita de estilo não ANSI já não é suportada e foi removida.
Categoria: Advertência
Descrição
A associação externa direita no estilo não-ANSI não é mais suportada e foi removida no Banco de Dados SQL do Azure.
Recomendação
Use a sintaxe de junção ANSI.
Para obter mais informações, consulte Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server.
Próxima coluna
Título: Tabelas e colunas chamadas NEXT levarão a um erro no Banco de Dados SQL do Azure.
Categoria: Questão
Descrição
Foram detetadas tabelas ou colunas denominadas NEXT. As sequências, introduzidas no Microsoft SQL Server, usam a função padrão ANSI NEXT VALUE FOR. Se uma tabela ou coluna for chamada NEXT e a coluna tiver o alias VALUE, e se o 'AS' do padrão ANSI for omitido, a instrução resultante poderá causar um erro.
Recomendação
Reescreva as instruções para incluir a palavra-chave padrão ANSI AS ao atribuir um alias a uma tabela ou coluna. Por exemplo, quando uma coluna é chamada NEXT e essa coluna é apelidada como VALUE, a consulta SELECT NEXT VALUE FROM TABLE
provoca um erro e deve ser reescrita como SELECT NEXT COMO VALUE DA TABELA. Da mesma forma, quando uma tabela é chamada NEXT e essa tabela é apelidada de VALUE, a consulta SELECT Col1 FROM NEXT VALUE
causa um erro e deve ser reescrita como SELECT Col1 FROM NEXT AS VALUE
.
RAISERROR
Título: As chamadas RAISERROR de estilo legado devem ser substituídas por equivalentes modernos.
Categoria: Advertência
Descrição
Chamadas RAISERROR como o exemplo abaixo são denominadas como estilo legado porque não incluem as vírgulas e os parênteses.
RAISERROR 50001 'this is a test'
. Esse método de chamar RAISERROR não é mais suportado e removido no Banco de Dados SQL do Azure.
Recomendação
Reescreva a instrução usando a sintaxe RAISERROR atual ou avalie se a abordagem moderna de BEGIN TRY { } END TRY BEGIN CATCH { THROW; } END CATCH
é viável.
Para obter mais informações, consulte Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server.
Auditorias de servidor
Título: Usar os recursos de auditoria do Banco de Dados SQL do Azure para substituir as Auditorias de Servidor
Categoria: Advertência
Descrição
Não há suporte para Auditorias de Servidor no Banco de Dados SQL do Azure.
Recomendação
Considere os recursos de auditoria do Banco de Dados SQL do Azure para substituir as Auditorias de Servidor. O SQL do Azure dá suporte à auditoria e os recursos são mais ricos do que o SQL Server. O Banco de Dados SQL do Azure pode auditar várias ações e eventos do banco de dados, incluindo: Acesso a dados, Alterações de esquema (DDL), Alterações de dados (DML), Contas, funções e permissões (DCL, Exceções de segurança. A Auditoria da Base de Dados SQL do Azure aumenta a capacidade de uma organização obter informações aprofundadas sobre eventos e alterações que ocorrem na sua base de dados, incluindo atualizações e consultas em relação aos dados. Como alternativa, migre para a Instância Gerenciada SQL do Azure ou para o SQL Server em Máquinas Virtuais do Azure.
Para mais informações, consulte a auditoria de para o Azure SQL Database e o Azure Synapse Analytics.
Credenciais do servidor
Título: A credencial a nível de servidor não é suportada no Banco de Dados SQL do Azure
Categoria: Advertência
Descrição
Uma credencial é um registro que contém as informações de autenticação (credenciais) necessárias para se conectar a um recurso fora do SQL Server. O Banco de Dados SQL do Azure dá suporte a credenciais de banco de dados, mas não às criadas no escopo do SQL Server.
Recomendação
O Banco de Dados SQL do Azure dá suporte a credenciais com escopo de banco de dados. Converta credenciais com escopo de servidor em credenciais com escopo de banco de dados. Como alternativa, migre para a Instância Gerenciada SQL do Azure ou para o SQL Server em Máquinas Virtuais do Azure.
Para obter mais informações, consulte CRIAR CREDENCIAIS COM ESCOPO DE BANCO DE DADOS
Broker de Serviços
Título: O recurso Service Broker não é suportado no Banco de Dados SQL do Azure
Categoria: Questão
Descrição
O SQL Server Service Broker fornece suporte nativo para aplicativos de mensagens e enfileiramento no Mecanismo de Banco de Dados do SQL Server. O recurso Service Broker não é suportado no Banco de Dados SQL do Azure.
Recomendação
O recurso Service Broker não é suportado no Banco de Dados SQL do Azure. Considere migrar para o Azure SQL Managed Instance, que suporta o service broker dentro da mesma instância. Como alternativa, migre para o SQL Server em VMs do Azure.
Gatilhos à escala do servidor
Título: O gatilho com escopo de servidor não é suportado no Banco de Dados SQL do Azure
Categoria: Advertência
Descrição
Um gatilho é um tipo especial de procedimento armazenado que é executado em resposta a determinada ação em uma tabela, como inserção, exclusão ou atualização de dados. Não há suporte para gatilhos com escopo de servidor no Banco de Dados SQL do Azure. O Banco de Dados SQL do Azure não oferece suporte às seguintes opções para triggers: FOR LOGON, ENCRYPTION, WITH APPEND, NOT FOR REPLICATION, opção de NOME EXTERNO (não há suporte a método externo), ALL SERVER OPTION (gatilho DDL), Gatilho num evento LOGON (gatilho de Logon). O Banco de Dados SQL do Azure não oferece suporte a triggers CLR.
Recomendação
Em vez disso, use um gatilho ao nível da base de dados. Como alternativa, migre para a Instância Gerenciada SQL do Azure ou para o SQL Server em Máquinas Virtuais do Azure.
Para obter mais informações, consulte Resolvendo diferenças Transact-SQL durante a migração para o Banco de dados SQL.
Trabalhos do SQL Agent
Título: Os trabalhos do SQL Server Agent não estão disponíveis na Base de Dados SQL do Azure
Categoria: Advertência
Descrição
O SQL Server Agent é um serviço do Microsoft Windows que executa tarefas administrativas agendadas, que são chamadas de trabalhos no SQL Server. Os trabalhos do SQL Server Agent não estão disponíveis no Banco de Dados SQL do Azure.
Recomendação
Utilize trabalhos elásticos, que são a substituição para os trabalhos do SQL Server Agent no Azure SQL Database. Os trabalhos elásticos para a Base de Dados SQL do Azure permitem que você execute scripts T-SQL fiavelmente que abrangem vários bancos de dados, com repetição automática e garantia de conclusão final. Como alternativa, considere migrar para a Instância Gerenciada SQL do Azure ou para o SQL Server em Máquinas Virtuais do Azure. Para obter mais informações, consulte tarefas elásticas no Banco de Dados SQL do Azure.
Tamanho do Banco de Dados SQL
Título: A Base de Dados SQL do Azure não suporta um tamanho de base de dados superior a 100 TB.
Categoria: Questão
Descrição
O tamanho do banco de dados é maior do que o tamanho máximo suportado de 100 TB.
Recomendação
Avalie se os dados podem ser arquivados ou compactados ou fragmentados em vários bancos de dados. Como alternativa, migre para o SQL Server em VMs do Azure.
Para obter mais informações, consulte vCore resource limits.
Correio SQL
Título: SQL Mail foi descontinuado.
Categoria: Advertência
Descrição
O SQL Mail foi descontinuado e removido no Banco de Dados SQL do Azure.
Recomendação
Considere migrar para a Instância Gerenciada SQL do Azure ou para o SQL Server em Máquinas Virtuais do Azure e use o Database Mail.
Para obter mais informações, consulte Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server
Procedimentos Sistema 110
Título: Instruções detetadas que fazem referência a procedimentos armazenados do sistema removidos e que não estão disponíveis na Base de Dados SQL do Azure.
Categoria: Advertência
Descrição
Os seguintes procedimentos de sistema e procedimentos armazenados estendidos não suportados não podem ser usados no Banco de Dados SQL do Azure - sp_dboption
, sp_addserver
, sp_dropalias
,sp_activedirectory_obj
, sp_activedirectory_scp
, sp_activedirectory_start
.
Recomendação
Remova referências a procedimentos de sistema sem suporte que foram removidos no Banco de Dados SQL do Azure.
Para obter mais informações, consulte Funcionalidade descontinuada do Mecanismo de Banco de Dados no SQL Server
Sinalizadores de rastreio
Título: O Banco de Dados SQL do Azure não oferece suporte a sinalizadores de rastreamento
Categoria: Advertência
Descrição
Os sinalizadores de rastreamento são usados para definir temporariamente características específicas do servidor ou para desativar um comportamento específico. Os sinalizadores de rastreamento são frequentemente usados para diagnosticar problemas de desempenho ou para depurar procedimentos armazenados ou sistemas de computador complexos. O Banco de Dados SQL do Azure não oferece suporte a sinalizadores de rastreamento.
Recomendação
Revise a seção de objetos afetados em Migrar do Azure para ver todos os sinalizadores de rastreamento sem suporte no Banco de Dados SQL do Azure e avaliar se eles podem ser removidos. Como alternativa, migre para a Instância Gerenciada SQL do Azure, que dá suporte a um número limitado de sinalizadores de rastreamento global ou ao SQL Server em Máquinas Virtuais do Azure.
Para obter mais informações, consulte Resolvendo diferenças Transact-SQL durante a migração para o Banco de dados SQL.
Autenticação do Windows
Título: Os usuários de banco de dados mapeados com autenticação do Windows (segurança integrada) não têm suporte no Banco de Dados SQL do Azure.
Categoria: Advertência
Descrição
O Banco de Dados SQL do Azure dá suporte a dois tipos de autenticação:
- Autenticação SQL: usa um nome de usuário e senha
- Autenticação do Microsoft Entra: usa identidades gerenciadas pelo Microsoft Entra ID (anteriormente Azure Ative Directory) e tem suporte para domínios gerenciados e integrados.
Os usuários de banco de dados mapeados com autenticação do Windows (segurança integrada) não têm suporte no Banco de Dados SQL do Azure.
Recomendação
Federar o Active Directory local com o Microsoft Entra ID. A identidade do Windows pode então ser substituída pelas identidades equivalentes do Microsoft Entra. Como alternativa, migre para o SQL Server em VMs do Azure.
Para obter mais informações, consulte recursos de segurança do Banco de dados SQL.
xp_cmdshell
Título: xp_cmdshell não tem suporte no Banco de Dados SQL do Azure.
Categoria: Questão
Descrição
xp_cmdshell
, que gera um shell de comando do Windows e passa uma cadeia de caracteres para execução, não tem suporte no Banco de Dados SQL do Azure.
Recomendação
Revise a seção de objetos afetados no Azure Migrate para ver todos os objetos que usam xp_cmdshell
e avaliar se a referência a xp_cmdshell
ou ao objeto afetado pode ser removida. Considere também explorar a Automação do Azure que fornece automação e serviço de configuração baseados em nuvem. Como alternativa, migre para o SQL Server em VMs do Azure.
Conteúdo relacionado
- Guia de migração do : SQL Server para o Banco de Dados SQL do Azure
- Serviços e ferramentas disponíveis para cenários de migração de dados
- O que é o Banco de Dados SQL do Azure?
- Calculadora de Custo Total de Propriedade do Azure
- Modelo de Adoção de Nuvem do Azure
- Práticas recomendadas para cálculo de custos e dimensionamento de cargas de trabalho migram para o Azure