Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting the result columns of table valued functions in SQL Server 2008 R2

For a constants generator I like to get the meta data of result columns for all my table valued functions (what are the names of the columns returned by each table valued function). How can I get them? Do I have to parse the function's source code or is there an interface providing this information?

Thanks for your help

Chris

The following query I use to get the TVFs:

SELECT udf.name AS Name, SCHEMA_NAME(udf.schema_id) AS [Schema]
FROM master.sys.databases AS dtb, sys.all_objects AS udf
WHERE dtb.name = DB_NAME() 
AND (udf.type IN ('TF', 'FT')) 
AND SCHEMA_NAME(udf.schema_id) <> 'sys'
like image 238
Christoph Avatar asked Aug 21 '12 09:08

Christoph


1 Answers

This information is available in sys.columns

Returns a row for each column of an object that has columns, such as views or tables. The following is a list of object types that have columns:

  • Table-valued assembly functions (FT)

  • Inline table-valued SQL functions (IF)

  • Internal tables (IT)

  • System tables (S)

  • Table-valued SQL functions (TF)

  • User tables (U)

  • Views (V)

SELECT *
FROM sys.columns
WHERE object_id=object_id('dbo.YourTVF')
like image 128
Martin Smith Avatar answered Oct 19 '22 10:10

Martin Smith