Max deu uma resposta decente que eu votarei assim que terminar de digitar essa visualização alternativa.
Não sou fã de restaurar bancos de dados do sistema ao fazer uma migração de atualização e prefiro fazer migrações em vez de atualizações no local, como discuti nesta longa resposta a outra pergunta.
Basicamente, eu gosto de começar do zero quando faço uma migração. Acho que jogar com migrações e atualizações do banco de dados do sistema por meio da restauração às vezes causa frustrações com as restaurações e pode levar a possíveis pecados.
Você também perguntou sobre índices, procedimentos armazenados, visualizações. Todos os itens no nível do banco de dados devem estar dentro de um banco de dados do usuário. Portanto, quando você restaurar o banco de dados X para o novo servidor, todos os objetos do banco de dados (tabelas, usuários, visualizações, procs, funções etc.) também estarão lá.
O que existe nos bancos de dados do sistema são trabalhos, logins, alertas, servidores vinculados, chaves de criptografia, etc. Itens no nível da instância.
Gosto de revisá-las e migrar sobre o que preciso usando vários scripts - ultimamente, os scripts do PowerShell DBATools.Io . Eu gosto de usar o script deles para copiar logins sql especialmente, porque ele lida com os usuários autenticados do SQL, mantendo suas senhas e identificadores de segurança iguais para que os usuários do banco de dados desses logins funcionem. Eles também têm um comando de migração completo do SQL Server, que executa seus subcomandos para copiar os itens sobre os quais eu normalmente copiaria.
Eu não acredito que Max esteja errado com essa resposta, portanto, o voto positivo. Acabei de ter mais sucesso e mais sorte e me sinto mais confortável migrando para o novo, em vez de tentar restaurar os bancos de dados do sistema entre versões. Eu diria que honestamente não me lembro da última vez que fiz uma migração de atualização de versão e não fiz dessa maneira em vez de restaurar os bancos de dados do sistema.