sp_stored_procedures (Transact-SQL)

適用範圍: 是SQL Server (所有支援的版本) 是Azure SQL Database

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

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

語法

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

引數

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

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

在 SQL Server 中,如果目前結構描述含有指定名稱的程序,就會傳回該程序。 如果指定的是非限定的預存程序,則 Database Engine 會以下列順序搜尋該程序:

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

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

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

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

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

0 = 模式比對為 off。

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 執行時,只會傳回本機預存程序 (而非採用四部分名稱的遠端預存程序)。 如果 sp_server_info 的結果集中,伺服器屬性 ACCESSIBLE_SPROC 為 Y,則只會傳回目前使用者可以執行的預存程式。

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

權限

需要結構描述的 SELECT 權限。

範例

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

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

USE AdventureWorks2012;  
GO  
EXEC sp_stored_procedures;  

B. 傳回單一預存程序

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

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

另請參閱

(transact-sql 的目錄預存程式 SQL)
系統預存程序 (Transact-SQL)