sp_stored_procedures (Transact-SQL)

適用于:SQL Server (所有支援的版本) Azure SQL Database Azure SQL 受控執行個體

傳回目前環境中的預存程序清單。

主題連結圖示Transact-SQL 語法慣例

語法

  
sp_stored_procedures [ [ @sp_name = ] 'name' ]   
    [ , [ @sp_owner = ] 'schema']   
    [ , [ @sp_qualifier = ] 'qualifier' ]  
    [ , [@fUsePattern = ] 'fUsePattern' ]  

引數

[ @sp_name = ] 'name' 這是用來傳回目錄資訊的程式名稱。 nameNvarchar (390) ,預設值為 Null。 支援萬用字元的模式比對。

[ @sp_owner = ] 'schema' 這是程式所屬的架構名稱。 schemaNvarchar (384) ,預設值為 Null。 支援萬用字元的模式比對。 如果未指定 擁有者 ,則會套用基礎 DBMS 的預設程式可見度規則。

在 SQL Server中,如果目前的架構包含具有指定名稱的程式,則會傳回該程式。 如果指定了非限定預存程式,Database Engine 會依下列順序搜尋程式:

  • 目前資料庫的 sys 結構描述。

  • 如果在批次或動態 SQL 中執行,則為呼叫端的預設結構描述;或者,如果非限定程序名稱出現在另一個程序定義的內文裡面,接下來就會搜尋含有這個其他程序的結構描述。

  • 目前資料庫中的 dbo 結構描述。

[ @qualifier = ] 'qualifier' 這是程式限定詞的名稱。 限定詞sysname,預設值為 Null。 各種 DBMS 產品支援表單中資料表的三部分命名, (限定詞schemaname。 在SQL Server中,限定詞代表資料庫名稱。 在某些產品中,它代表資料表之資料庫環境的伺服器名稱。

[ @fUsePattern = ] 'fUsePattern' 判斷底線 (_) 、百分比 (%) 或括弧 [ ]) 是否解譯為萬用字元。 fUsePattern,預設值為 1。

0 = 模式比對已關閉。

1 = 模式比對開啟。

傳回碼值

結果集

資料行名稱 資料類型 描述
PROCEDURE_QUALIFIER sysname 程序限定詞名稱。 這個資料行可以是 NULL。
PROCEDURE_OWNER sysname 程序擁有者名稱。 這個資料行一律會傳回值。
PROCEDURE_NAME Nvarchar (134) 程序名稱。 這個資料行一律會傳回值。
NUM_INPUT_PARAMS int 保留供未來使用。
NUM_OUTPUT_PARAMS int 保留供未來使用。
NUM_RESULT_SETS int 保留供未來使用。
備註 Varchar (254) 程序的描述。 SQL Server不會傳回此資料行的值。
PROCEDURE_TYPE smallint 程序類型。 SQL Server一律會傳回 2.0。 這個值可以是下列其中一個值:

0 = SQL_PT_UNKNOWN

1 = SQL_PT_PROCEDURE

2 = SQL_PT_FUNCTION

備註

為了將互通性提升到最高點,閘道用戶端應該只會採用 SQL 標準模式比對 (百分比 (%) 和底線 (_) 萬用字元)。

不一定會檢查有關目前使用者特定預存程序執行權的權限資訊;因此,不保證一定能夠存取。 請注意,它只接受三部分名稱。 這表示只有在針對SQL Server執行本機預存程式時,才會傳回需要四部分命名) 的遠端預存程式 (。 如果伺服器屬性ACCESSIBLE_SPROC為 sp_server_info結果集中的 Y,則只會傳回目前使用者可執行檔預存程式。

sp_stored_procedures 相當於 ODBC 中的 SQLProcedures 。 傳回的結果會依 PROCEDURE_QUALIFIERPROCEDURE_OWNERPROCEDURE_NAME排序。

權限

需要結構描述的 SELECT 權限。

範例

A. 傳回目前資料庫中的所有預存程序

下列範例會傳回 AdventureWorks2019 資料庫中的所有預存程式。

USE AdventureWorks2012;  
GO  
EXEC sp_stored_procedures;  

B. 傳回單一預存程序

下列範例會傳回 uspLogError 預存程序的結果集。

USE AdventureWorks2012;  
GO  
sp_stored_procedures N'uspLogError', N'dbo', N'AdventureWorks2012', 1;  

另請參閱

目錄預存程序 (Transact-SQL)
系統預存程序 (Transact-SQL)