Alterar a estrutura de um UserDefinedTable Type no SQL Server 2008
Uma das novidades do SQL Server 2008, foi o aparecimento do UserDefinedTable Type, permitindo assim criar uma estrutura de uma tabela e usa-la como um table-value parameter.
Num projecto em que estou a trabalhar actualmente utilizo este tipo de dados e precisei de o alterar após já o ter referenciado num stored procedure. Como está bem explicito aqui, não podemos alterar a estrutura do tipo de dados após te-lo criado.
The user-defined table type definition cannot be modified after it is created.
Para o fazer, teremos que remover e criar novamente o nosso tipo com as alterações pretendidas. Extra-trabalho quando já o temos referenciado, pois como seria de esperar não deixa antes de removermos essas mesmas referências.
Para contornar o problema segui os seguintes passos:
- Criar uma novo tipo igual ao que pretendo remover com um novo nome
- Alterar para o novo nome todas as referências do que pretendemos alterar
- Remover o tipo que existia inicialmente
- Criar o novo com as alterações pretendidas e voltar a substituir todas as referências
- Remover o tipo criado no ponto 1.
Não me parece a melhor solução para este problema, mas para já é que se arranja.
Se existir uma melhor agradeço que me digam. 🙂