Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Nem todas as funcionalidades da base de dados Access funcionam com SQL Server. Por exemplo, SQL Server e Access usam conjuntos diferentes de palavras-chave reservadas. Estas diferenças podem causar problemas quando migra usando o SQL Server Migration Assistant (SSMA). A secção seguinte descreve possíveis problemas de migração e como pode resolvê-los.
Definições ou funcionalidades da base de dados que podem afetar a migração
Revise as seguintes definições ou funcionalidades de Access que podem afetar a migração para SQL Server ou Azure SQL.
- As tabelas não têm índices únicos
- As tabelas têm colunas de replicação
- Tabelas com índices únicos contêm múltiplos valores NULL
- As tabelas contêm valores de data que estão fora do alcance do SQL Server
- Os comprimentos dos índices excedem 900 bytes
- Os nomes dos objetos são palavras-chave do SQL Server ou contêm caracteres especiais
- Os tamanhos dos campos diferem nas relações entre a chave primária e a chave estrangeira
- As tabelas referenciadas não têm uma chave primária nem um índice único
- As tabelas têm colunas de hiperligação
- As funções não podem ser convertidas para SQL Server ou Azure SQL
As tabelas não têm índices únicos
Se migrar uma tabela sem um índice único para o SQL Server, não pode modificar a tabela após a migração. Esta limitação pode causar problemas de compatibilidade com aplicações.
Quando converte objetos da base de dados do Acesso, a janela de Saída lista quaisquer tabelas de Acesso que não tenham índices únicos.
Pode configurar o Access para adicionar uma chave primária na tabela SQL Server durante a conversão. Para obter mais informações, consulte Configurações do projeto (conversão).
As tabelas têm colunas de replicação
Se migrar uma tabela de acesso que inclui colunas do sistema de replicação para o SQL Server, a funcionalidade de replicação do Jet deixa de funcionar após a migração.
Após a migração, considere usar a replicação do SQL Server para manter cópias sincronizadas das suas bases de dados.
Tabelas com índices únicos contêm múltiplos valores NULL
Antes da versão 8.13, não se podiam transferir tabelas de acesso que têm índices únicos com múltiplos valores nulos para o SQL Server. No SQL Server, índices únicos não permitem múltiplos nulos. A migração falha nestas tabelas.
A SSMA assinala esta questão nos relatórios de avaliação. Para criar um relatório de avaliação, consulte Avaliar os objetos da base de dados Access para conversão.
Se este problema existir, certifique-se de que a chave primária não tem valores nulos duplicados. Ou, remover a chave primária ou índices únicos que contenham múltiplos valores nulos.
As tabelas contêm valores de data que estão fora do alcance do SQL Server
O tipo de data-hora do SQL Server aceita datas no intervalo de 1 de janeiro de 1753 a 31 de dezembro de 9999, apenas. O acesso aceita datas no intervalo de 1 de janeiro de 100 a 31 de dezembro de 9999.
A SSMA assinala esta questão nos relatórios de avaliação. Para criar um relatório de avaliação, consulte Avaliar os objetos da base de dados Access para conversão.
Podes configurar como o SSMA resolve datas que estão fora do intervalo do SQL Server. Para mais informações, consulte Definições do Projeto (Migração).
Os comprimentos dos índices excedem 900 bytes
Os índices do SQL Server têm um limite de 900 bytes para o tamanho total das colunas-chave do índice. Se as suas tabelas de acesso usarem índices maiores, o SSMA apresenta um aviso.
Se continuares com a migração de dados, a migração pode falhar.
Os nomes dos objetos são palavras-chave SQL Server ou contêm caracteres especiais
O Access e o SQL Server têm conjuntos diferentes de palavras-chave reservadas e caracteres especiais. O SQL Server aceita objetos que são nomeados com palavras-chave do SQL Server ou que contenham caracteres especiais se usar identificadores entre parênteses ou aspas, como select ou [select].p. Para obter mais informações, consulte Identificadores de banco de dados.
Observação
Para usar aspas para delimitar identificadores, SET QUOTED_IDENTIFIER deve ser ON.
Por exemplo, CREATE TABLE [schema](c1 [FOR]) é uma afirmação válida, embora schema e FOR sejam palavras-chave reservadas. Além disso, CREATE TABLE [xxx*yyy](c1 x&y) é uma afirmação válida, mesmo que o nome da tabela e da coluna contenham os caracteres * especiais e &.
Todas as consultas que referenciam esses objetos devem também usar os nomes com parênteses ou aspas. Por exemplo, a consulta SELECT * FROM schema falha. A consulta correta é: SELECT * FROM [schema].
Quando converte objetos da base de dados do Acesso, o painel de Saída lista quaisquer tabelas de Acesso que utilizem palavras-chave ou caracteres especiais. Podes modificar as tabelas no Access e depois remover e adicionar novamente a base de dados. Ou pode modificar consultas que referenciam esses objetos para que usem parênteses ou aspas para delimitar identificadores. Se não modificar as suas consultas, as suas aplicações Access podem devolver erros ou apresentar outros problemas.
Os tamanhos dos campos diferem nas relações entre a chave primária e a chave estrangeira
O SQL Server não suporta a funcionalidade Jet de ligar colunas que têm diferentes tipos de dados ou tamanhos com restrições de chave estrangeira.
Quando convertes objetos da base de dados do Access, a janela de Saída lista quaisquer restrições de chave primária ou de chave estrangeira que não sejam convertidas para SQL Server. Podes alterar os tipos e tamanhos de dados nas colunas do Access para que coincidam, depois remover e adicionar novamente a base de dados do Access. Ou pode migrar dados embora estas restrições não sejam criadas no SQL Server.
As tabelas referenciadas não têm uma chave primária nem um índice único
O Access aceita relações entre tabelas onde a tabela referenciada não tem uma chave primária ou um índice único. No entanto, o SQL Server não suporta este tipo de relação.
Quando converte objetos da base de dados do Acesso, a janela de Saída lista quaisquer tabelas que tenham relações, mas sem chave primária ou índice único. Podes alterar as tabelas para adicionar chaves primárias ou índices únicos, depois remover e voltar a adicionar a base de dados do Access. Ou pode migrar dados mesmo que a relação entre as tabelas esteja quebrada.
As tabelas têm colunas de hiperligação
O SQL Server não suporta colunas de hiperligações . Em vez disso, as colunas são tratadas como colunas de memorandos do Access. Por defeito, estas colunas são convertidas em colunas nvarchar(max) no SQL Server. Pode personalizar o mapeamento. Para mais informações, consulte Tipos de dados de origem e destino do mapa.
As funções não podem ser convertidas para SQL Server ou Azure SQL
Expressões ou regras de validação padrão de acesso podem incluir funções do sistema Access ou funções definidas pelo utilizador que não correspondem ao SQL Server ou Azure SQL. Se usares funções que não se associam ao SQL Server ou Azure SQL, não podes carregar no SQL Server ou Azure SQL as expressões ou regras de validação por defeito.