You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SELECT语句中获取带架构名称的数据库存储过程?

解决SQL Server中查询带架构前缀的存储过程问题

嘿,我明白你想要的效果——把存储过程名带上架构前缀(比如dbo.usp_GetData),之前的语句失效确实是因为用错了对象:SCHEMA_NAME不是sys.procedures里的列,它是一个系统函数,需要传入架构ID才能返回对应的架构名称。

正确的查询语句(两种方法可选)

方法1:使用SCHEMA_NAME()函数直接转换

利用sys.procedures表中的schema_id列,传入SCHEMA_NAME()函数获取架构名,再和存储过程名拼接:

SELECT SCHEMA_NAME(schema_id) + '.' + name AS procedure_full_name
FROM sys.procedures
ORDER BY name;

方法2:关联sys.schemas表查询

如果你需要更多关于架构的信息,或者习惯用JOIN的方式,也可以关联sys.schemas表(存储所有架构信息的系统表):

SELECT s.name + '.' + p.name AS procedure_full_name
FROM sys.procedures p
INNER JOIN sys.schemas s 
    ON p.schema_id = s.schema_id
ORDER BY p.name;

扩展:查询更多存储过程信息

如果需要查看存储过程的创建时间、修改时间等额外信息,只需要在SELECT中添加对应列即可:

SELECT 
    SCHEMA_NAME(p.schema_id) + '.' + p.name AS procedure_full_name,
    p.create_date AS 创建时间,
    p.modify_date AS 修改时间
FROM sys.procedures p
ORDER BY p.name;

内容的提问来源于stack exchange,提问作者overwhelmedaf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:26:46