Una TVF (Table Value Functions, Función con Valores de Tabla), son funciones definidas por el usuario muy parecidas a las vistas, pero con la particularidad que pueden recibir parámetros, así que podríamos decir que son como vistas, pero que reciben parámetros.
En algunos casos, las TVF podrían reemplazar los procedimientos almacenados (SP, Store Procedure), o bien poder ser utilizados dentro de los mismos.
Son muy útiles, ya que disminuye el tamaño de una consulta, que puede llegar a ser más compleja, permitiendo mejor legibilidad de la misma.
Sintaxis
Características:
- TVF's retornan una tabla virtual, llamada consulta (query)
- SQL Server provee dos tipos de TVF
- Inline: basada de una única expresión SELECT
- Multi-Statement: Crea y carga varias tablas
- Soportan parámetros de entrada (no así las vistas).
- Una TVF Inline, puede ser pensada como una vista parametrizada.
Ejemplo de TVF's

Veremos la utilización dentro de una consulta de la TVF llamada CxC.AntSald_Det, la cual recibe como parámetro el Id de empresa y filtra la información únicamente para esa condición.
Select a.cCodProc,b.cDescript, Sum(a.Saldo) as Saldo from CxC.AntSald_Det(@cEmpresa) a inner join CxCProc b on (a.cCodProc=b.cCodProc) group by a.cCodProc,b.cDescrip order by a.cCodProc
Conclusión
La utilización de TVF ayudará mucho, tanto a tener un código más legible, como a realizar consultas complejas. Por lo que recomiendo su uso. En otro artículo veremos la utilización de los CTE (Common Table Expressions).Gracias por leer y espero que te sea de utilidad este pequeño artículo.








