Sql server 在表的每条记录上调用TVF,并计算结果

Sql server 在表的每条记录上调用TVF,并计算结果,sql-server,sql-server-2005,user-defined-functions,Sql Server,Sql Server 2005,User Defined Functions,我想那一定很明显,但我想不出来 假设有一个表tblData,其中有一列ID,还有一个表值函数(\u tvf),该函数将ID作为参数。我需要tblData中所有ID的结果 但是: 给我一个错误:无法绑定多部分标识符“data.ID” 将所有ID传递到此TVF和concat结果的正确方法是什么 谢谢我认为您可能需要在此处使用交叉应用而不是内部联接: SELECT * FROM dbo.tblData data CROSS APPLY dbo._tvf(data.ID) AS tvfData 这

我想那一定很明显,但我想不出来

假设有一个表
tblData
,其中有一列
ID
,还有一个表值函数(
\u tvf
),该函数将
ID
作为参数。我需要
tblData
中所有ID的结果

但是:

给我一个错误:
无法绑定多部分标识符“data.ID”

将所有ID传递到此TVF和concat结果的正确方法是什么


谢谢

我认为您可能需要在此处使用交叉应用而不是内部联接:

SELECT * 
FROM dbo.tblData data 
CROSS APPLY dbo._tvf(data.ID) AS tvfData
这将为基表的每个
data.ID
调用TVF函数,并将结果连接到基表的列

请参见此处的资源:


我认为您可能需要在此处使用交叉应用而不是内部联接:

SELECT * 
FROM dbo.tblData data 
CROSS APPLY dbo._tvf(data.ID) AS tvfData
这将为基表的每个
data.ID
调用TVF函数,并将结果连接到基表的列

请参见此处的资源:

不幸的是,我得到了一个“最大递归100在语句完成之前已耗尽”错误。因为这是另一个问题,也许你也可以帮我。我必须在调用ITVF的Selct语句的末尾应用一个选项(MAXRECURSION 0)。现在它工作了,再次感谢。不幸的是,我得到了一个“最大递归100在语句完成之前已经用尽”错误。因为这是另一个问题,也许你也可以帮我。我必须在调用ITVF的Selct语句的末尾应用一个选项(MAXRECURSION 0)。现在它工作了,再次感谢。