Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ao migrar seu banco de dados do SQL Server para o Banco de Dados SQL do Azure, você pode descobrir que os bancos de dados do SQL Server exigem alguma nova engenharia antes que eles possam ser migrados. Este artigo fornece diretrizes para ajudá-lo a realizar essa reengenharia quanto a entender os motivos subjacentes pelos quais a reengenharia é necessária. Para detectar incompatibilidades e migrar bancos de dados para o Banco de Dados SQL do Azure, use o Serviço de Migração de Dados do Azure.
Observação
O Microsoft Entra ID era anteriormente conhecido como Azure Active Directory (Azure AD).
Visão geral
A maioria dos recursos de Transact-SQL (T-SQL) que os aplicativos usam têm suporte total no Microsoft SQL Server e no Banco de Dados SQL do Azure. Por exemplo, os componentes principais do SQL como tipos de dados, operadores, cadeia de caracteres, funções aritméticas, lógicas e de cursor funcionam da mesma maneira no SQL Server e no Banco de Dados SQL. No entanto, existem algumas diferenças do T-SQL em elementos DDL (linguagem de definição de dados) e DML (linguagem de manipulação de dados), resultando em instruções T-SQL e consultas que têm suporte apenas parcial (que discutiremos posteriormente neste artigo).
Além disso, há alguns recursos e sintaxe sem suporte nenhum, porque o Banco de Dados SQL do Azure foi criado para isolar recursos de dependências nos bancos de dados do sistema e no sistema operacional. Dessa forma, a maioria dos recursos no nível da instância não tem suporte no Banco de Dados SQL. As opções e instruções T-SQL não estarão disponíveis se elas configurarem opções no nível da instância, componentes do sistema operacional ou se especificarem a configuração do sistema de arquivos. Quando essas funcionalidades são necessárias, uma alternativa apropriada costuma estar disponível de alguma forma no Banco de Dados SQL ou em outro recurso ou serviço do Azure.
Por exemplo, a alta disponibilidade é integrada no Banco de Dados SQL do Azure. Instruções T-SQL relacionadas a grupos de disponibilidade não são compatíveis com o Banco de Dados SQL e as exibições de gerenciamento dinâmico relacionadas aos Grupos de Disponibilidade AlwaysOn também não têm suporte.
Para obter uma lista dos recursos com suporte e sem suporte do Banco de Dados SQL, consulte a comparação de recursos: Banco de Dados SQL do Azure e Instância Gerenciada de SQL do Azure. Esta página complementa esse artigo e se concentra em instruções T-SQL.
Instruções de sintaxe T-SQL com diferenças parciais
As instruções DDL principais estão disponíveis, mas as extensões de instrução DDL relacionadas a recursos sem suporte, como o posicionamento de arquivos em disco, não têm suporte.
- No SQL Server, as instruções
CREATE DATABASEeALTER DATABASEtêm mais de três dúzias de opções. As instruções incluem o a localização de arquivos, FILESTREAM e opções do Service Broker que se aplicam somente ao SQL Server. Isso pode não importar se você criar bancos de dados no Banco de Dados SQL antes de migrar, mas se você estiver migrando o código T-SQL que cria bancos de dados, deverá comparar CREATE DATABASE (Banco de Dados SQL do Azure) com a sintaxe do SQL Server em CREATE DATABASE (SQL Server T-SQL) para garantir que todas as opções usadas sejam compatíveis.CREATE DATABASEpara o Banco de Dados SQL do Azure também tem as opções de objetivo de serviço e de pool elástico que se aplicam apenas ao Banco de Dados SQL. - As instruções
CREATE TABLEeALTER TABLEtem as opçõesFILETABLEeFILESTREAMque não podem ser usadas no Banco de Dados SQL, porque esses recursos não têm suporte. - Não há suporte para a criação, alteração ou remoção de objetos de usuário, como tabelas, exibições ou procedimentos armazenados usando as instruções correspondentes
CREATEALTEReDROPnomasterbanco de dados em um servidor lógico. -
CREATE LOGINeALTER LOGINinstruções têm suporte, mas não oferecem todas as opções disponíveis no SQL Server. Para tornar seu banco de dados mais portátil, o Banco de Dados SQL estimula o uso de usuários de banco de dados independente em vez de logons, sempre que possível. Para obter mais informações, consulte CREATE LOGIN, ALTER LOGIN e Authorize database access to SQL Database, SQL Managed Instance e Azure Synapse Analytics.
Sintaxe do T-SQL sem suporte no Banco de Dados SQL do Azure
Além das instruções T-SQL relacionadas aos recursos sem suporte descritos na comparação de recursos: Banco de Dados SQL do Azure e Instância Gerenciada de SQL do Azure, não há suporte para as instruções e grupos de instruções a seguir. Assim, se o banco de dados que será migrado está usando qualquer um dos recursos a seguir, faça a reengenharia do seu aplicativo para eliminar essas instruções e recursos do T-SQL.
- Ordenação de objetos do sistema.
- Relacionado à conexão: instruções de ponto de extremidade. O banco de dados SQL não dá suporte à autenticação do Windows, mas dá suporte à autenticação do Microsoft Entra. Isso inclui a autenticação de entidades de segurança do Active Directory federadas com a ID do Microsoft Entra. Para obter mais informações, consulte Microsoft Entra autenticação para Azure SQL.
- Consultas entre bancos de dados e entre instâncias que usam três ou quatro nomes de partes. Há suporte para nomes de três partes que fazem referência ao banco de dados
tempdbe ao banco de dados atual. A consulta elástica dá suporte a referências somente leitura a tabelas em outros bancos de dados MSSQL. - Encadeamento de propriedade entre bancos de dados e a propriedade de banco de dados
TRUSTWORTHY. -
EXECUTE AS LOGIN. UseEXECUTE AS USERem vez disso. - EKM (gerenciamento extensível de chaves) para chaves de criptografia. Chaves gerenciadas pelo cliente TDE (Transparent Data Encryption) e chaves mestras de coluna Always Encrypted podem ser armazenadas no Azure Key Vault.
- Criação de eventos: notificações de eventos, notificações de consulta.
- Propriedades do arquivo: sintaxe relacionada ao nome do arquivo de banco de dados, posicionamento, tamanho e outras propriedades de arquivo gerenciadas automaticamente pelo Banco de Dados SQL.
- Alta disponibilidade: sintaxe relacionada à alta disponibilidade e à recuperação de banco de dados, que são gerenciadas pelo Banco de Dados SQL. Isso inclui a sintaxe de backup, restauração, Always On, espelhamento de banco de dados, envio de logs e modelos de recuperação.
- Sintaxe relacionada à replicação de instantâneo, transacional e mesclagem, que não está disponível no Banco de Dados SQL. Há suporte para as assinaturas de replicação.
- Funções:
fn_get_sql,fn_virtualfilestats,fn_virtualservernodes. - Configuração de instância: sintaxe relacionada à memória do servidor, threads de trabalho, afinidade da CPU e sinalizadores de rastreamento. Use as camadas de serviço e os tamanhos da computação em vez disso.
-
KILL STATS JOB. -
OPENQUERY,OPENDATASOURCEe nomes de quatro partes. - .NET Framework: integração clr (common language runtime)
- Pesquisa semântica
- Credenciais do Servidor: em vez disso, use credenciais no escopo do banco de dados.
- Não há suporte para permissões no nível do servidor:
GRANT,REVOKEeDENYde permissões de nível de servidor. Algumas permissões no nível do servidor são substituídas por permissões no nível do banco de dados ou concedidas implicitamente por funções de servidor integradas. Algumas DMVs no nível do servidor e exibições de catálogo têm exibições semelhantes no nível do banco de dados. SET REMOTE_PROC_TRANSACTIONSSHUTDOWNsp_addmessage-
sp_configureeRECONFIGURE. ALTER DATABASE SCOPED CONFIGURATION tem suporte. sp_helpusersp_migrate_user_to_contained- SQL Server Agent: sintaxe que se baseia no SQL Server Agent ou no banco de dados
msdb: alertas, operadores, servidores de gerenciamento central. Em vez disso, use scripts, como o PowerShell. - Auditoria do SQL Server: em vez disso, use a auditoria do Banco de Dados SQL.
- Rastreamento do SQL Server.
- Sinalizadores de rastreamento.
- Depuração de T-SQL.
- Com escopo do servidor ou gatilhos de logon.
- Instrução
USE: para alterar o contexto do banco de dados para um banco de dados diferente, é necessário criar uma conexão com esse banco de dados.
Referência T-SQL completa
Para obter mais informações sobre gramática T-SQL, uso e exemplos, consulte Transact-SQL referência (Mecanismo de Banco de Dados).
Sobre as marcas "Aplica-se a"
A referência T-SQL inclui artigos relacionados a todas as versões do SQL Server recentes. Abaixo do título do artigo, há um ícone de barra, que lista as plataformas MSSQL e indica a aplicabilidade. Por exemplo, grupos de disponibilidade foram introduzidos no SQL Server 2012. O artigo CRIAR GRUPO DE DISPONIBILIDADE indica que a instrução se aplica ao SQL Server (a partir do 2012) . A instrução não se aplica ao SQL Server 2008, AO SQL Server 2008 R2, ao Banco de Dados SQL do Azure, ao Azure Synapse Analytics ou ao Parallel Data Warehouse.
Em alguns casos, o assunto geral de um artigo pode ser usado em um produto, mas há pequenas diferenças entre produtos. As diferenças são indicadas em pontos médios no artigo, conforme apropriado. Por exemplo, o artigo CREATE TRIGGER está disponível no Banco de Dados SQL. No entanto, a opção ALL SERVER para gatilhos de nível de servidor indica que os gatilhos de nível de servidor não podem ser usados no Banco de Dados SQL. Use gatilhos de nível de banco de dados em vez disso.