在存储过程中查找表类型

时间:2018-10-16 06:46:34

标签: sql sql-server tsql

在我的项目中,有成千上万的sp和100的sp在不同的过程中使用不同的表类型作为输入。我想找出特定过程中使用的表类型的列表,因此存储过程可能会使用多种表类型我想要所有这些人。

请帮助我,以免得到这份名单。

2 个答案:

答案 0 :(得分:2)

以下内容将为您列出过程名称,参数名称和相应类型(如果它们是表类型):

SELECT P.[name]
      ,PM.[name]
      ,T.[name]
FROM [sys].[procedures] P
INNER JOIN [sys].[parameters] PM
    ON p.[object_id] = PM.[object_id]
INNER JOIN [sys].[types] T
    ON PM.[user_type_id] = T.[user_type_id]
WHERE T.[is_table_type] = 1;

答案 1 :(得分:0)

这将使您更接近答案:

Select C.name,S.text,*
From syscomments S
inner Join sysobjects C 
on  S.id=C.id

只需根据查询的内容在查询附近添加。