📅  最后修改于: 2023-12-03 15:35:22.953000             🧑  作者: Mango
在 SQL 数据库中,过程是一组可重复执行的脚本或者 SQL 查询语句。过程可以接收输入参数,并返回输出结果。在 T-SQL 中,可以使用下面的语句来创建一个过程:
CREATE PROCEDURE procedure_name
@param1 datatype [ = default_value ] ,
@param2 datatype [ = default_value ]
AS
BEGIN
-- SQL 语句
END
其中,procedure_name
是过程的名称,@param1
和 @param2
是输入参数的名称和类型,[ = default_value ]
是可选的默认参数值,BEGIN
和 END
之间的语句是过程的执行体。
如果你想查找数据库中具有名称的过程,可以使用下面的 T-SQL 查询语句:
SELECT name
FROM sys.procedures
WHERE is_ms_shipped = 0
ORDER BY name;
这条语句使用了 sys.procedures
系统视图来获得所有非 Microsoft 所提供的系统存储过程的名称,并按名称进行排序。
以下是一个完整的 T-SQL 脚本示例,用于查找并显示具有名称的过程:
SELECT
[ProcedureName] = p.name,
[ParameterCount] = COUNT(p.parameters_id),
[CreateDate] = CONVERT(nvarchar(30),p.create_date,126),
[ModifyDate] = CONVERT(nvarchar(30),p.modify_date,126),
[LastExecution] = CONVERT(nvarchar(30),qs.last_execution_time,126)
FROM
sys.procedures AS p
LEFT OUTER JOIN sys.dm_exec_procedure_stats AS qs ON p.object_id = qs.object_id
WHERE
p.is_ms_shipped = 0
GROUP BY
p.name,
p.create_date,
p.modify_date,
qs.last_execution_time
ORDER BY
p.name;
输出结果类似于:
| ProcedureName | ParameterCount | CreateDate | ModifyDate | LastExecution | | ------------- | -------------- | ----------------------| -----------------------| -----------------------| | procedure1 | 2 | 2022-05-01T10:00:00Z | 2022-05-01T10:30:00Z | 2022-05-02T09:00:00Z | | procedure2 | 1 | 2022-05-02T12:00:00Z | 2022-05-04T10:30:00Z | NULL | | procedure3 | 0 | 2022-04-29T08:30:00Z | 2022-04-29T09:00:00Z | 2022-05-03T11:30:00Z |
这条语句使用了 sys.dm_exec_procedure_stats
动态管理视图来获取过程的最后执行时间,以补充 sys.procedures
视图中提供的信息。此外,它还显示了过程的参数数量、创建时间以及修改时间。
通过使用 T-SQL,我们可以很方便地查找数据库中具有名称的过程。通过使用系统视图和动态管理视图,我们可以获取有关过程的详细信息,如创建时间、修改时间、参数数量和最后执行时间。这对于开发人员来说是非常有用的,因为它可以帮助他们了解其代码库中的过程,并更好地维护和优化它们。