sp_stored_procedures (Transact-SQL)
適用於:SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體
傳回目前環境中的預存程序清單。
語法
sp_stored_procedures
[ [ @sp_name = ] N'sp_name' ]
[ , [ @sp_owner = ] N'sp_owner' ]
[ , [ @sp_qualifier = ] N'sp_qualifier' ]
[ , [ @fUsePattern = ] fUsePattern ]
[ ; ]
引數
[ @sp_name = ] N'sp_name'
用來傳回目錄資訊的程式名稱。 @sp_name為 nvarchar(390),預設值為 NULL
。 支援通配符模式比對。
[ @sp_owner = ] N'sp_owner'
程序所屬之結構描述的名稱。 @sp_owner為 nvarchar(384),預設值為 NULL
。 支援通配符模式比對。 如果未 指定@sp_owner ,則會套用基礎資料庫管理系統 (DBMS) 的預設程序可見性規則。
在 SQL Server 中,如果目前的架構包含具有指定名稱的程式,則會傳回該程式。 如果指定非限定預存程式,資料庫引擎會依下列順序搜尋程式:
目前資料庫的
sys
結構描述。如果在批次或動態 SQL 中執行,則呼叫端的默認架構;或者,如果非限定程式名稱出現在另一個程式定義的主體內,則接下來會搜尋包含此其他程序的架構。
目前資料庫中的
dbo
結構描述。
[ @sp_qualifier = ] N'sp_qualifier'
程式限定元的名稱。 @sp_qualifier為 sysname,預設值為 NULL
。 各種 DBMS 產品支援表格的三部分命名形式 <qualifier>.<schema>.<name>
。 在 SQL Server 中, @sp_qualifier 代表資料庫名稱。 在某些產品中,它代表數據表之資料庫環境的伺服器名稱。
[ @fUsePattern = ] fUsePattern
判斷底線 ()、百分比%
(_
) 或括弧 ([
和]
) 是否解譯為通配符。 @fUsePattern為 bit,預設值為 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 | 保留供未來使用。 |
REMARKS |
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
相當於 SQLProcedures
ODBC 中的 。 傳回的結果會依 PROCEDURE_QUALIFIER
、 PROCEDURE_OWNER
和 PROCEDURE_NAME
排序。
權限
SELECT
需要架構的許可權。
範例
A. 傳回目前資料庫中的所有預存程式
下列範例會傳回 AdventureWorks2022 資料庫中的所有預存程式。
USE AdventureWorks2022;
GO
EXEC sp_stored_procedures;
B. 傳回單一預存程式
下列範例會傳 uspLogError
回預存程序的結果集。
USE AdventureWorks2022;
GO
sp_stored_procedures N'uspLogError',
N'dbo',
N'AdventureWorks2022',
1;