小智 476
正如迈克所说,最好的方法是使用information_schema.只要您不在master数据库中,就不会返回系统存储过程.
select *
from DatabaseName.information_schema.routines
where routine_type = 'PROCEDURE'
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因,您在master数据库中有非系统存储过程,则可以使用该查询(这将过滤掉MOST系统存储过程):
select *
from master.information_schema.routines
where routine_type = 'PROCEDURE'
and Left(Routine_Name, 3) NOT IN ('sp_', 'xp_', 'ms_')
Run Code Online (Sandbox Code Playgroud)
Kev*_*vin 101
SELECT name,
type
FROM dbo.sysobjects
WHERE (type = 'P')
Run Code Online (Sandbox Code Playgroud)
Mik*_*ike 26
根据我的理解,"首选"方法是使用information_schema表:
select *
from information_schema.routines
where routine_type = 'PROCEDURE'
Run Code Online (Sandbox Code Playgroud)
Mov*_*GP0 14
您可以尝试此查询以获取存储过程和函数:
SELECT name, type
FROM dbo.sysobjects
WHERE type IN (
'P', -- stored procedures
'FN', -- scalar functions
'IF', -- inline table-valued functions
'TF' -- table-valued functions
)
ORDER BY type, name
Run Code Online (Sandbox Code Playgroud)
如果您使用的是SQL Server 2005,则以下内容将起作用:
select *
from sys.procedures
where is_ms_shipped = 0
Run Code Online (Sandbox Code Playgroud)
只是名字:
SELECT SPECIFIC_NAME
FROM YOUR_DB_NAME.information_schema.routines
WHERE routine_type = 'PROCEDURE'
Run Code Online (Sandbox Code Playgroud)
这也有助于列出除系统过程之外的过程:
select * from sys.all_objects where type='p' and is_ms_shipped=0
Run Code Online (Sandbox Code Playgroud)
您可以使用以下查询之一在一个数据库中查找存储过程列表:
查询1:
SELECT
*
FROM sys.procedures;
Run Code Online (Sandbox Code Playgroud)
查询2:
SELECT
*
FROM information_schema.routines
WHERE ROUTINE_TYPE = 'PROCEDURE'
Run Code Online (Sandbox Code Playgroud)
如果要查找所有数据库中所有SP的列表,可以使用以下查询:
CREATE TABLE #ListOfSPs
(
DBName varchar(100),
[OBJECT_ID] INT,
SPName varchar(100)
)
EXEC sp_msforeachdb 'USE [?]; INSERT INTO #ListOfSPs Select ''?'', Object_Id, Name FROM sys.procedures'
SELECT
*
FROM #ListOfSPs
Run Code Online (Sandbox Code Playgroud)
选择所有存储过程和视图
select name,type,type_desc
from sys.objects
where type in ('V','P')
order by name,type
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
569393 次 |
| 最近记录: |