Qual é a abordagem mais fácil e confiável para renomear as tabelas e colunas do banco de dados no SQL Server 2008 r2? Concluímos o desenvolvimento e, por alguns motivos, precisamos renomear algumas tabelas e algumas colunas.
Usar sinônimos é a melhor maneira de fazer isso? Quais são as armadilhas para as quais devemos estar preparados? Isso ajuda a renomear as colunas também?
Temos muitos scripts relacionados a essas tabelas e eles também são referenciados no aplicativo pelos desenvolvedores .net.
Respostas:
Eu acho que a abordagem depende se os aplicativos estão ativos ou se você ainda está testando.
Para tabelas, a abordagem mais segura é criar um sinônimo usando o novo nome. Dessa forma, você pode alterar os aplicativos, um de cada vez (ou mesmo uma referência de cada vez), sem precisar alterar todos eles de uma vez. Você não precisa descartar o sinônimo e renomear a tabela até ter certeza de que possui todas as alterações.
Para colunas, é um pouco mais complicado. Você pode criar sinônimos que apontam para uma visualização, mas nem todas as visualizações serão necessariamente atualizáveis, dependendo da tabela base. Como um exemplo simples:
Então, como acima, quando você tiver alterado todas as referências a colunas e o novo nome da tabela, simplesmente:
Se o aplicativo não estiver ativo e ainda estiver passando por testes, renomeie as colunas e corrija o que quebra após uma pesquisa global e substitua (ou refator inteligente usando SSDT, RedGate, etc.) por meio de códigos / procedimentos do aplicativo etc.
Se o aplicativo estiver ativo, será necessário avançar um pouco mais cuidadosamente.
fonte
Bem, existem muitas armadilhas que você pode encontrar ao alterar o nome de tabelas e colunas. Qualquer outro código de aplicativo ou SQL que os chame terá que ser renomeado para corresponder ou não funcionará. O Redgate faz algumas ferramentas muito boas que podem passar e fazer todas as alterações nos dependentes veiws / functions / sprocs do SQL. O maior conselho que posso lhe dar é fazer essas alterações em um ambiente DEV primeiro e TEST TEST TEST para garantir que você tenha corrigido o código em todos os lugares.
fonte