10

什么是 SQL Server 系统表,其中包含有关存储过程参数的信息以及数据类型、名称、长度、是否为空等信息?

谢谢

4

6 回答 6

19

您可以查询 sys.procedures 和 sys.parameters...

select pr.name, p.*
from sys.procedures pr 
inner join sys.parameters p on pr.object_id = p.object_id

并加入类型太...

select pr.name, p.*, t.name, t.max_length
from sys.procedures pr 
inner join sys.parameters p on pr.object_id = p.object_id
inner join sys.types t on p.system_type_id = t.system_type_id
于 2012-05-04T14:51:44.383 回答
5

你也可以使用

select * from INFORMATION_SCHEMA.PARAMETERS
于 2012-05-04T14:53:40.060 回答
1

你也可以使用

select * from INFORMATION_SCHEMA.ROUTINES \G;
于 2013-07-03T15:36:18.300 回答
0
SELECT 
    p.name AS [SP Name], qs.execution_count,
    ISNULL(qs.execution_count/DATEDIFF(Second, qs.cached_time, GETDATE()), 0) AS [Calls/Second],
    qs.total_worker_time/qs.execution_count AS [AvgWorkerTime], qs.total_worker_time AS [TotalWorkerTime],  
    qs.total_elapsed_time, qs.total_elapsed_time/qs.execution_count AS [avg_elapsed_time],
    qs.cached_time,
    isr.ROUTINE_DEFINITION
FROM sys.procedures AS p
INNER JOIN sys.dm_exec_procedure_stats AS qs
ON p.[object_id] = qs.[object_id]
Inner Join INFORMATION_SCHEMA.ROUTINES as ISR
on p.name = isr.SPECIFIC_NAME
WHERE qs.database_id = DB_ID()
    and
    isr.ROUTINE_DEFINITION like '%XXXX%'  -- name of something you are looking for in the stored procedure

ORDER BY qs.execution_count DESC OPTION (RECOMPILE);
于 2016-03-17T19:33:06.373 回答
0

对于那些使用 SQL 2000

SELECT * FROM [dbName]..sysobjects  WHERE xtype = 'P'

SELECT * FROM [dbName]..sysComments

通过 id 加入他们

于 2016-08-12T20:16:11.393 回答
0

这显示了有关存储过程和用户​​定义函数的信息。它将包括不带参数的过程/标量函数,但如果可用,将包括参数信息。

SELECT 
O.Name ProcedureName, 
P.parameter_id Position,
P.Name ParameterName, 
P.max_length MaxLen, 
P.is_output IsOutput, 
P.has_default_value HasDefaultValue, 
P.default_value DefaultValue, 
P.is_nullable IsNullable, 
T.name TypeName, 
T.max_length TypeMaxLen,
O.type_desc TypeDescription
FROM SYS.OBJECTS O
LEFT JOIN SYS.PARAMETERS P ON O.object_id = P.object_id
LEFT JOIN SYS.TYPES T ON P.system_type_id = T.system_type_id
WHERE type_desc LIKE 'SQL_%'
ORDER BY O.Name, P.parameter_id, P.Name
于 2020-02-25T17:10:39.643 回答