首页 > 解决方案 > 如何获取列出的存储过程的自定义用户类型列表?

问题描述

我能够找到为一个存储过程找到自定义用户类型的方法:

select referenced_entity_name
from sys.dm_sql_referenced_entities('#procedure name here#', 'OBJECT')
where referenced_class_desc = 'TYPE'

我应该如何将此函数用于逗号分隔的存储过程列表?

标签: sqlsql-server

解决方案


如果您有可用的(SQL Server 2016 和更高版本),您可以使用STRING_SPLIT拆分列表,然后使用CROSS APPLY为列表中的每个项目调用该函数。

DECLARE @list VARCHAR(1000) = 'p_Proc1,p_Proc2';

SELECT referenced_entity_name
FROM STRING_SPLIT(@list, ',') ss
CROSS APPLY sys.dm_sql_referenced_entities(ss.value, 'OBJECT')
where referenced_class_desc = 'TYPE';

推荐阅读