sql - 如何获取列出的存储过程的自定义用户类型列表?
问题描述
我能够找到为一个存储过程找到自定义用户类型的方法:
select referenced_entity_name
from sys.dm_sql_referenced_entities('#procedure name here#', 'OBJECT')
where referenced_class_desc = 'TYPE'
我应该如何将此函数用于逗号分隔的存储过程列表?
解决方案
如果您有可用的(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';
推荐阅读
- flutter - 在颤动中更改文本对象中字符串插值的颜色
- mysql - 无法连接到 SQL docker 容器(SSL 问题)
- docker - 如何将 VueJS 应用程序 Dockerize 用于生产并跳过 Dev 依赖项的安装
- php - sprintf (PHP) 返回不需要的字符 (×)
- c# - 在 Unity C# 中,我试图在光线投射命中的地方生成一个立方体
- spring-boot - Pushy APNS http2 协议 - io.netty.util.concurrent.PromiseCombiner 错误中没有初始化方法
- python - Jupyter notebook 停止打印输出
- python - 按条件过滤行并使用 python pandas 从数据框中选择多列
- javascript - 使用 domtoimage.toPng 为 pdf 页面内的两个 div 导出 pdf
- haskell - Haskell ForkIO 将线程数限制为某个值