Os gatilhos SQL CLR podem fazer isso? Ou há um jeito melhor?

Eu quero escrever um serviço (provavelmente em c #) que monitora uma tabela de banco de dados. Quando um registro é inserido na tabela, desejo que o serviço pegue os dados inseridos recentemente e execute alguma lógica de negócios complexa com ele (muito complexo para o TSQL).

Uma opção é fazer com que o serviço verifique periodicamente a tabela para ver se novos registros foram inseridos. O problema de fazer dessa maneira é que eu quero que o serviço saiba sobre as inserções assim que elas acontecerem e não quero diminuir o desempenho do banco de dados.

Fazendo uma pequena pesquisa, parece que talvez escrever um gatilho CLR possa fazer o trabalho. Eu poderia escrever um gatilho em c # que é acionado quando uma inserção ocorre e depois enviar os dados recém-inseridos para um serviço do Windows ou WCF.

O que você acha que é um bom (ou até possível) uso dos gatilhos do SQL CLR?

Alguma outra idéia de como fazer isso?