Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Emile Petrus

Atualizando as dependências no SQL2K

Recommended Posts

Eu preciso atualizar as dependencias de alguns objetos do banco de dados, como stored procedures, views e functions, pois estas dependências são perdidas quando é realizado uma alteração do tipo 'alter view...' ou 'alter procedure...'. As dependências podem ser consultadas utilizando a procedure 'sp_depends'.

 

Para as bases com SQL Server 2005 SP2 e SQL 2008 utilizo com sucesso a procedure 'sp_refreshsqlmodule' (http://msdn.microsoft.com/en-us/library/bb326754.aspx).

 

Para as bases com SQL Server 2000 (o qual ainda possuo) só está disponível a procedure 'sp_refreshview', a qual infelizmente somente atualiza as dependências para as views.

 

Existe alguma procedure equivalente no SQL2K, ou outra forma qualquer, para realizar esta atualização de dependências no SQL Server 2000?

 

Emile

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até onde saiba, as dependências são refeitas quando os "alter" são feitos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Emile, as depencias do SQL2000 sao atualizadas em todo alter, como o Motta disse, exceto se você criou um tipo de dado.

Tentou o sp_recompile?

E a SYS.SQL_DEPENDENCIES

http://msdn.microsoft.com/pt-br/library/ms174402.aspx

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelas respostas,

 

Porém infelizmente este é um problema do SQL 2K (em versões mais recente tudo funciona). Eu sei que esta é uma versão antiga mas algumas bases ainda estão em produção. A seguir coloquei um exemplo de código que reproduz o problema:

 

Create Procedure stp_A As -- Cria-se uma procedure qualquer

Select @@Version

go

 

Create Procedure stp_B As -- A segunda procedure utiliza a primeira

Exec stp_A

go

 

EXEC sp_depends @objname = N'stp_A' -- Quando este comando é executado é exibido que a stp_B depende da stp_A

go

 

Alter Procedure stp_A As -- Ao alterar a procedure o SQL Server 2000 apaga a lista de dependências

Select @@Version

 

EXEC sp_depends @objname = N'stp_A' -- Ao rodar este comando não será mais visto (no SQL 2K) que a stp_B depende da stp_A

 

Emile

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.