Wbudowana funkcja tabelaryczna (TVF) jest jak makro:jest rozszerzona na zapytanie zewnętrzne. Nie ma planu jako takiego:wywołujący SQL ma plan.
Wielowypowiedziowy TVF ma plan (znajdzie odniesienie).
TVF są przydatne, gdy chcesz zmienić listę WYBIERZ dla sparametryzowanego wejścia. Inline TVF są rozszerzane, a zewnętrzny wybór/gdzie zostanie wzięty pod uwagę przez optymalizatora. W przypadku wielowyrazowych plików TVF optymalizacja nie jest tak naprawdę możliwa, ponieważ musi działać do końca, wtedy filtr.
Osobiście używałbym przechowywanego proc na wielowyrazowym TVF. Są bardziej elastyczne (np. podpowiedzi, mogą zmienić stan, SET NOCOUNT ON, SET XACTABORT itp.).
Nie mam zastrzeżeń do wbudowanych plików TVF, ale nie używam ich w kodzie skierowanym do klienta z powodu niemożności użycia funkcji SET i zmiany stanu.