Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Gerar valor de hierarquia automaticamente


Eu tenho uma abordagem diferente para responder a ambas as perguntas. Geralmente evito usar gatilhos até que seja a última opção, pois adiciona sobrecarga desnecessária no banco de dados.

Comparação entre gatilhos e procedimento armazenado
  • É fácil visualizar relacionamentos de tabelas, restrições, índices, storedprocedure no banco de dados, mas os gatilhos são difíceis de visualizar.
  • Os gatilhos são executados invisíveis para o aplicativo do cliente. Eles não são visíveis ou podem ser rastreados no código de depuração.
  • É fácil esquecer os gatilhos e, se não houver documentação, será difícil descobrir para os novos desenvolvedores sua existência.
  • Triggers são executados toda vez que os campos do banco de dados são atualizados e causam sobrecarga no sistema. Isso torna o sistema mais lento.

Chega de dizer, é por isso que prefiro procs armazenados. Você pode criar um arquivo de trabalho (digamos, por exemplo:ele é executado a cada 30 minutos ou em qualquer outro momento) via agente. Você pode usar a lógica para inserção nesse arquivo de trabalho. Desta forma, seus dados na tree table seria próximo ao tempo real.

agora faça referência para criar um agente:
http://msdn.microsoft.com/en-us/library/ms191128(v=sql.90).aspx
http://msdn. microsoft.com/en-us/library/ms181153(v=sql.105).aspx