Fungsi bernilai tabel sebaris (TVF) seperti makro:diperluas ke kueri luar. Itu tidak memiliki rencana seperti itu:pemanggilan SQL memiliki rencana.
TVF multi-pernyataan memiliki rencana (akan menemukan referensi).
TVF berguna jika Anda ingin memvariasikan daftar SELECT untuk input berparameter. TVF sebaris diperluas dan pilihan luar/tempat akan dipertimbangkan oleh pengoptimal. Untuk optimasi TVF multi-pernyataan sebenarnya tidak mungkin karena harus dijalankan sampai selesai, lalu filter.
Secara pribadi, saya akan menggunakan proc tersimpan melalui TVF multi-pernyataan. Mereka lebih fleksibel (misalnya petunjuk, dapat mengubah status, SET NOCOUNT ON, SET XACTABORT dll).
Saya tidak keberatan dengan TVF sebaris tetapi cenderung tidak menggunakannya untuk kode yang dihadapi klien karena ketidakmampuan untuk menggunakan SET dan mengubah status.