É possível, mas no mundo real é um pouco mais complicado do que a abordagem ingênua que você imagina. Principalmente, é inaceitável ter um gatilho esperando por uma solicitação HTTP:
- Por um lado, seu aplicativo irá rastrear até uma parada brusca, porque os gatilhos bloquearão recursos (principalmente bloqueios) aguardando uma resposta de algum serviço WWW distante.
- Segundo, mais sutil, mas muito pior, é a questão da correção na presença de reversões. Se a transação emitida para solicitações HTTP for revertida, não há como 'desfazer' a solicitação HTTP.
A solução é desacoplar o gatilho da solicitação HTTP por meio de uma fila. O gatilho enfileira a solicitação em uma fila local e confirma, enquanto uma parte separada do processamento desenfileira essas solicitações e emite a solicitação HTTP. Isso resolve os dois problemas apontados acima. Você pode usar tabelas comuns para filas (consulte Usando tabelas como filas) ou pode usar o Service Broker, ambos funcionam bem.
Agora, sobre como desenfileirar essas solicitações e realmente fazer a chamada HTTP, recomendo fortemente o uso de um processo dedicado (ou seja, um aplicativo dedicado para essa finalidade). Embora seja possível usar SQLCLR, é uma escolha muito ruim. Os recursos do SQL Server (especificamente trabalhadores) são preciosos demais para serem desperdiçados esperando por respostas da Internet.