Eu tenho a Tabela A com 5 colunas:
TableA
--
Name
Tel
Email
Address
Quero adicionar uma nova coluna (móvel) entre Tel e Email:
TableA
--
Name
Tel
Mobile
Email
Address
Se eu usar
ALTER TABLE TableA
ADD COLUMN Mobile INT NOT NULL
a coluna móvel é adicionada ao final da tabela.
Existe uma maneira de conseguir isso sem descartar a tabela e mover os dados para uma nova tabela?
Não. Reconstruir a mesa é a única maneira. Consulte este item de conexão para confirmação .
Você pode usar o SSMS para criar um script para você se confiar no designer de tabela um pouco problemático.
Além disso, você pode declarar uma visão com a ordem de coluna desejada como forma de agrupar colunas logicamente relacionadas.
Se você vir "Salvar alterações não é permitido". mensagens após adicionar uma nova coluna no Designer com SQL Server 2005 ou superior, você precisará selecionar Ferramentas -> Opções, selecionar Designers e desmarcar a caixa em Opções de tabela chamada: "Impedir salvar alterações que exigem recriação de tabela". Depois de executar esta etapa, você poderá salvar suas alterações onde desejar.
É estranho que o MySQL permita adicionar colunas em qualquer lugar usando SQL, mas com o SQL Server, você só pode fazer isso usando o Designer. Hmmm. Parece que deve haver alguns comandos mágicos escondidos em algum lugar! ;-)