Esta é uma limitação de design ruim, e ainda é o caso do SQL Server 2014. O instalador do SQL Server deve conseguir mover tudo!
No entanto, você pode contorná-lo criando pastas onde desejar (ainda separado de 32/64 bits), movendo tudo do original para o novo e, em seguida, criando junções que mapeiam os novos locais para o antigo. Você precisará ter privilégios de administrador, fechar todos os programas e conexões SQL e interromper todos os serviços SQL.
Veja como eu fiz isso no Windows 7, com explicações para cada etapa. Eu fiz o mesmo com outros programas que não queria reinstalar no Server 2012R2.
Certifique-se de entender o que cada etapa faz antes de fazer isso! Observe também todas as linhas quebradas.
0) Certifique-se de ter um backup atual da sua unidade do sistema, no caso de você fatfinger algo ou algo falhar que eu não tenha tomado em conta.
1) Interrompa todos os serviços do SQL Server, use o gerenciamento do sistema ou da linha de comando:
sc stop SQLBrowswer
sc stop SQLWriter
sc stop MSSQL$SQLSERVER2012E
2) Crie pastas na unidade em que você deseja que os arquivos do programa sejam armazenados:
mkdir e:\SqlServer\x64
mkdir e:\SqlServer\x86
3) Mova os programas de 64 bits. Verifique a saída para ver se algum arquivo foi copiado em vez de movido!
robocopy "C:\program files\Microsoft SQL Server0" "E:\SqlServer\x640" /e /copyall /move
robocopy "C:\program files\Microsoft SQL Server0" "E:\SqlServer\x640" /e /copyall /move
4) Mova os programas de 32 bits: Verifique a saída para ver se algum arquivo foi copiado em vez de movido!
robocopy "C:\program files (x86)\Microsoft SQL Server0" "E:\SqlServer\x860" /e /copyall /move
robocopy "C:\program files (x86)\Microsoft SQL Server0" "E:\SqlServer\x860" /e /copyall /move
5) Para mim, este arquivo foi copiado ao mover a árvore 110, então eu tive que movê-lo antes de excluir as pastas. Usando o Process Explorer (Find), eu determinei que ele estava aberto pelo WmiPrvSE.exe, que vou reiniciar perto do fim. Por enquanto, para tirá-lo do caminho para que as pastas do SQL Server possam ser apagadas, eu simplesmente movi-o para a raiz de c ::
move "C:\program files\Microsoft SQL Server0\Shared\instapi110.dll" c:\instapi110.dlx
6) Exclua as pastas dos arquivos de programa:
rmdir /s "c:\program files\Microsoft SQL Server"
rmdir /s "c:\program files (x86)\Microsoft SQL Server"
7) Se algum destes falhar, você provavelmente perdeu um arquivo em 3) ou 4) que foi copiado em vez de movido. Volte para a etapa 5 e lide com o (s) arquivo (s) de forma semelhante à maneira como lidei com instapi110.dlx.
8) Crie junções para que os arquivos no novo local também apareçam no antigo:
mklink /J "C:\Program Files\Microsoft SQL Server" E:\SqlServer\x64"
mklink /J "c:\Program Files (x86)\Microsoft SQL Server" "e:\SqlServer\x86"
9) Reinicie os serviços SQL, usando o Gerenciamento de Sistema, o SQL Server Configuration Manager ou a linha de comando:
sc start MSSQL$SQLSERVER2012E
sc start SQLBrowswer
sc start SQLWriter
10) Eu usei o System Management para reiniciar o serviço WMI, uma vez que ele também reinicia qualquer serviço dependente automaticamente. Para outros componentes, ou se você não consegue descobrir o que está aberto, você pode reinicializar.
del c:\instapi110.dlx
11) Certifique-se de que, ao fazer o backup da unidade do sistema, você também faça o backup da unidade com as mesmas (ou pelo menos as pastas). Os backups de imagem não fazem backup dos arquivos dos destinos de junção em outros discos.