viernes, 23 de mayo de 2014

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


Related Posts:

  • Clase Gratis - Descargar SymmetricDS #Download #Descarga #SymmetricDS @SymmetricDS #Clase #Gratis #Curso #OpenSource #Syncronization #Data #Plataform #DataBase Syncronizar (o Replicar) tus datos es muy importante para garantizar tener actualizado tus registro… Read More
  • Poblar DropDownList - Clase Gratis - Curso Programación Capas #Clase #Gratis #Programacion #Capa #Ado #Net #AdoNet #SQLServer  Esta vez les dejo una nueva clase extra del curso de programación en Capas con Ado Net, en el cual veremos cómo poblar un dropdownlist o combobox uti… Read More
  • Curso Primeros Pasos con Entity FrameWork #Nuevo #curso #EntityFrameWork #SQlServer #CSharp Accede al Curso En este curso verás de manera práctica cómo desarrollar una aplicación con el Entity FrameWork, realizando operaciones CRUD (Create, Read, Update, Delet… Read More
  • [Video] Common Table Expression - SQL Server #Video #CTE #SQLServer #Online #Free #TSQL via +DEBS Consultores  @DEBSConsultores (adsbygoogle = window.adsbygoogle || []).push({}); En esta ocasión dejo una pequeña explicación sobre CTE o Common Ta… Read More
  • Iniciando con Entity FrameWork ¿Qué aprenderé?  Desarrollar aplicaciones (Web o Escritorio) utilizando tecnología Entity FrameWork Incluye 1 hora de vídeo bajo demanda 2 artículos Acceso de por vida Acceso en dispositivos móviles y TV Certif… Read More

3 comentarios:

  1. Grande te agradezco por cada nueva cosa que publicas y te digo lo que me enseñastes sobre CTE lo he aplicado en una aplicacion que estoy haciendo esta aplicacio consta de facturacion y la factura la hago usando una CTE

    ResponderBorrar
  2. Interesante tu post. Tambien cabe mencionar que si se abusa de las funciones en consultas de miles de registros baja el desempeño de la consulta. Pero bueno todo depende de donde se use y como. Gracias por tu post.

    ResponderBorrar
  3. Gracias por tu comentario Sergio.

    William, muy buena observación, a como dicen, "Todo en Exceso es malo", la herramienta ahí está, sólo que debe utilizarse con moderación.

    ResponderBorrar

¿Tienes algún comentario? ¿Qué te ha parecido este artículo? Cuéntalo.

 
>