Até o SQL Server 2005 podíamos modificar a estrutura de uma tabela sem problema algum, mas isso no SQL Server 2008 não é mais permitido (será?).
Pois bem, existe uma configuração no SQL Server 2008 (desde a primeira versão e serve para o SQL Server 2012 também) que permite que as tabelas sejam alteradas, conforme imagem no final.
É só desmarcar a opção em destaque e o SQL Server não vai barrar mais a alteração.
Explicando um pouco por que o problema ocorre e o que a Microsoft buscou diminuir o risco: Quando se faz uma alteração em uma tabela o SQL faz o seguinte:
- Cria uma nova tabela temporária;
- Copia os dados da tabela sendo alterada para a nova tabela temporária;
- Faz um DROP na tabela sendo alterada;
- Cria uma nova tabela com a nova estrutura;
- Copia os dados da tabela temporária para a nova tabela;
- Faz um DROP da tabela temporária.
O problema é que em uma etapa destas, pode dar algum problema e termos perda de dados.
Nós sabemos, é só SQL Server… Mas adoramos!!
Figura 1