Usuário com melhor resposta
Update Cascade em auto relacionamento

Pergunta
-
Uso o sql 2005 e tenho uma tabela que tem auto-relacionamento. a tabela é mais ou menos a seguinte (com campos suprimidos):
Tabela PRODUTO
cod_prod (PK)
nom_prod
cod_prod_sub (este campo é FK do cod_prod da mesma tabela)
Vou ter situações onde eu preciso atualizar o campo do produto e por consequencia os cod_prod_sub iguais a ele.
Não consigo colocar um update cascade pois dá redundancia cíclica.
Tentei fazer uma trigger no update mas não deu certo, neste caso não sei se não dá ou eu que fiz algo de errado.
Tem como resolver isso?- Movido Gustavo Maia Aguiar quarta-feira, 30 de setembro de 2009 22:26 (De:SQL Server - Desenvolvimento Geral)
Respostas
-
Danyboy,
O SQL server permite triggers aninhadas até 32 níveis, mas na instalação default do SQL não permite triggers recursivas (uma tabela dispara uma trigger, que altera dados na mesma tabela, que dispara a trigger novamente). Para que você altere isso, terá que digitar o comando:
ALTER DATABASE <suabase>
SET RECURSIVE_TRIGGERS ON
Entretanto, antes de você fazer isso (recomendo que não faça porque você terá que controlar cada nível da trigger e como ela se comportará) eu recomendo que você dê uma olhada no books Online sobre Recursive Triggers.
MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008- Marcado como Resposta DanyBoy quarta-feira, 30 de setembro de 2009 16:26
Todas as Respostas
-
-
-
Danyboy,
O SQL server permite triggers aninhadas até 32 níveis, mas na instalação default do SQL não permite triggers recursivas (uma tabela dispara uma trigger, que altera dados na mesma tabela, que dispara a trigger novamente). Para que você altere isso, terá que digitar o comando:
ALTER DATABASE <suabase>
SET RECURSIVE_TRIGGERS ON
Entretanto, antes de você fazer isso (recomendo que não faça porque você terá que controlar cada nível da trigger e como ela se comportará) eu recomendo que você dê uma olhada no books Online sobre Recursive Triggers.
MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008- Marcado como Resposta DanyBoy quarta-feira, 30 de setembro de 2009 16:26