【发布时间】:2021-04-17 12:12:31
【问题描述】:
以下查询将返回数据库中所有表值函数的列表及其输出列(和列数据类型)的列表。
USE DATABASENAME
GO
SELECT
rc.*
FROM
INFORMATION_SCHEMA.ROUTINES r INNER JOIN
INFORMATION_SCHEMA.ROUTINE_COLUMNS rc ON
r.ROUTINE_CATALOG = rc.TABLE_CATALOG AND
r.ROUTINE_SCHEMA = rc.TABLE_SCHEMA AND
r.ROUTINE_NAME = rc.TABLE_NAME
WHERE
r.ROUTINE_TYPE = 'FUNCTION' AND
r.DATA_TYPE = 'TABLE'
但是有没有办法查询数据库中所有表值函数的列表以及它们的输入参数(和参数数据类型)的列表?
我查看了here,但没有找到解决方案。
我注意到INFORMATION_SCHEMA.ROUTINES 表中有一个名为ROUTINE_DEFINITION 的列,它显示了创建表值函数的完整脚本,所以我想可以解析这个字符串并找到输入数据类型您正在寻找的,虽然这会非常复杂,尤其是考虑到编程 cmets 包含在这个 ROUTINE_DEFINITION 中,这只会使事情变得更加复杂。
【问题讨论】:
-
来自sys.parameters的查询
-
或者来自INFORMATION_SCHEMA.PARAMETERS,如果你更喜欢来自相同的架构
-
@Squirrel 太棒了!你想发布答案吗?我可以将其标记为正确。
标签: sql-server table-valued-parameters