Table Value Function - SQL Server

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...


Publicado: Editado: Estado: No revisado

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
TVF4.png


 

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
TVF1.png

 

TVF2.png


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.
 

TVF5.png
 
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.
Bibliografía

http://debsconsultores.blogspot.com/2014/05/table-value-function-sql-server.html

Dar puntos de agradecimiento
Reportar esta publicación

Déjanos tu comentario

Comentarios

debsdaniel

(Desarrolladores de Contenido)

Intereses

Lectura y enseñanza de la biblia.Pasar tiempo de calidad con mi familia. Apasionado con el desarrollo tanto de escritorio como web y la enseñanza.

Puntos: 134 Votos: 5