Estou usando o Microsoft SQL Server Migration Assistant v6 (também conhecido como SSMA) para atualizar um banco de dados do Access para o SQL Server. Estou recebendo mensagens informativas que dizem "A2SS0029: O nome do índice 'Nome' foi alterado durante a conversão.".
Como esses são apenas nomes de índice, isso não deve causar problemas para mim. Mas eu me pergunto por que o nome tem que ser mudado. Principalmente porque consegui criar um índice com o nome fornecido manualmente após a migração.
Por que os nomes dos índices estão sendo renomeados? E estou errado sobre isso não causar nenhum problema (já que não tenho nenhuma consulta que use dicas de índice, se é que isso é possível com o Access).
Embora existam razões pelas quais uma ferramenta pode tomar decisões inteligentes sobre nomes de índice (como evitar nomes duplicados nos casos em que há colisões reais e, além disso, quando realmente importa, como quando estão na mesma tabela), parece que o SSMA apenas cria nomes novos e exclusivos para todos os índices. Talvez apenas no caso de encontrar pelo menos um nome de índice que seja reutilizado, não tenho certeza. Eu testaria isso, mas não tenho o Access instalado em nenhum lugar.
Por que ele faz isso? Quem sabe? Conservadorismo extremo? Paranóia? Eu acho que é apenas ser extremamente seguro.
Há casos em que nomes duplicados seriam um problema, mas eles são isolados para entidades de primeira classe que terminam em
sys.objects
, como restrições de chave primária. Os nomes de índice só são aplicados para serem exclusivos no nível da tabela (já que o nome é exposto apenas emsys.indexes
), não no nível do banco de dados.