【发布时间】:2018-04-21 17:14:13
【问题描述】:
我有一个作为 SQLCLR 函数构建的表值函数,该函数调用远程 Web 服务上的计算。我想知道 CROSS APPLY 函数是并行调用还是顺序调用?
我不确定支持计算的 Web 服务是否真的是线程安全的。
交叉应用查询:
WITH listCTE AS
(
SELECT 'definition1' AS def UNION ALL
SELECT 'definition2' AS def UNION ALL
SELECT 'definition3' AS def
)
SELECT calc.*
FROM listCTE a
CROSS APPLY dbo.f_webservice_calculate (a.def,'2017-06-30') calc
SQLCLR TVF 函数定义。
[SqlFunction(
Name = "f_webservice_calculate",
DataAccess = DataAccessKind.Read,
FillRowMethodName = "fillRowMethod",
SystemDataAccess = SystemDataAccessKind.Read
)]
public static IEnumerable f_webservice_calculate(string def, DateTime date)
{
...calling web service using HttpWebRequest
}
【问题讨论】:
标签: sql-server web-services tsql sqlclr