SQL Server的CLR存储过程是否需要访问数据库?

时间:2015-05-06 19:17:16

标签: c# sql-server clr sqlclr

目前,我处于一种棘手的情况,我们无法访问外部数据库,而是通过其REST API提取数据。在执行对外部数据和我们自己的数据执行分析的存储过程之前,需要先拉出这些数据。

我的想法是创建一个CLR存储过程,该过程将由执行分析的存储过程调用,该过程将运行HTTP请求,反序列化JSON,然后将数据填充到我们的数据库中。

是否存在潜在的超时错误? CLR存储过程是否需要纯HttpClient代码?为什么这个想法如此糟糕以至于我觉得需要在StackOverflow上用y&确认它?

由于

1 个答案:

答案 0 :(得分:0)

这可能是使用SQL Server Service Broker的一个很好的选择。过程调用可以简单地将消息放在服务队列上。然后,您可以创建一个程序,该消息在消息到达时被激活,以从API中提取所请求的数据,然后在消息完成或错误消息时响应消息。它还允许您根据需要从SQL服务器卸载API工作。这是一个异步解决方案,因此无论程序调用该程序,它都可以在需要时等待结果时执行其他工作。