我们有一个系统,其中数据是从外部第 3 方源(我无法控制)复制的。处理源数据的唯一方法是通过 Web 服务。
对于每个新复制的行,我必须通过发送 Web 请求来更新外部数据库中的另一个表。
我知道这可以通过简单地编写一个发送 http 请求的 SQLCLR 例程来实现。我的问题是:从架构的角度来看,这是正确的方法吗?这不被认为是滥用 CLR 集成吗?
我们有一个系统,其中数据是从外部第 3 方源(我无法控制)复制的。处理源数据的唯一方法是通过 Web 服务。
对于每个新复制的行,我必须通过发送 Web 请求来更新外部数据库中的另一个表。
我知道这可以通过简单地编写一个发送 http 请求的 SQLCLR 例程来实现。我的问题是:从架构的角度来看,这是正确的方法吗?这不被认为是滥用 CLR 集成吗?
我想说您已经确定了使用 CLR 的绝佳场景。Microsoft 发布了一个关于 CLR 与 TSQL 的很好的概述,以及何时使用一个而不是另一个 -我在下面提供了链接。
由于您通过 .Net 技术访问 SQL Server 之外的资源,我认为您的方法非常明确地支持 CLR。
http://msdn.microsoft.com/en-us/library/ms131045(v=sql.105).aspx
是的,通过 SQLCLR 访问 Web 服务是对 SQLCLR 功能的正确使用。
您唯一需要注意的是数据库一侧的超时。Web 服务并不以快速响应而闻名。