获取SQL Server 2008 R2中表值函数的结果列

Chr*_*oph 9 user-defined-functions sql-server-2008-r2

对于常量生成器,我喜欢获取所有表值函数的结果列的元数据(每个表值函数返回的列的名称是什么).我怎么能得到它们?我是否必须解析函数的源代码,或者是否有提供此信息的接口?

谢谢你的帮助

克里斯

我用以获取TVF的以下查询:

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'
Run Code Online (Sandbox Code Playgroud)

Mar*_*ith 13

此信息可在 sys.columns

为具有列(例如视图或表)的对象的每列返回一行.以下是具有列的对象类型列表:

  • 表值汇编函数(FT)

  • 内联表值SQL函数(IF)

  • 内部表格(IT)

  • 系统表(S)

  • 表值SQL函数(TF)

  • 用户表(U)

  • 意见(五)

SELECT *
FROM sys.columns
WHERE object_id=object_id('dbo.YourTVF')
Run Code Online (Sandbox Code Playgroud)