Вызовите TVF для каждой записи таблицы и сопоставьте результаты - PullRequest
1 голос
/ 21 октября 2010

Я думал, что это должно быть очевидно, но я не могу понять это.

Скажем, есть таблица tblData со столбцом ID и табличной функцией (_tvf)это принимает ID в качестве параметра.Мне нужны результаты для всех идентификаторов в tblData.

Но:

SELECT * FROM tblData data 
INNER JOIN dbo._tvf(data.ID) AS tvfData
   ON data.ID = tvfData.ID

выдает ошибку: The multi-part identifier "data.ID" could not be bound

Как правильно пройти?все идентификаторы для этого TVF и результаты?? 1016 *

Спасибо

1 Ответ

5 голосов
/ 21 октября 2010

Я думаю, вам может понадобиться использовать CROSS APPLY вместо внутреннего соединения:

SELECT * 
FROM dbo.tblData data 
CROSS APPLY dbo._tvf(data.ID) AS tvfData

Это вызовет функцию TVF для каждой data.ID базовой таблицы и присоединит результаты к базе.столбцы таблицы.

См. ресурсы здесь:

...