sp_stored_procedures (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Returnerar en lista över lagrade procedurer i den aktuella miljön.

Transact-SQL syntaxkonventioner

Syntax

sp_stored_procedures
    [ [ @sp_name = ] N'sp_name' ]
    [ , [ @sp_owner = ] N'sp_owner' ]
    [ , [ @sp_qualifier = ] N'sp_qualifier' ]
    [ , [ @fUsePattern = ] fUsePattern ]
[ ; ]

Arguments

[ @sp_name = ] N'sp_name'

Namnet på proceduren som används för att returnera kataloginformation. @sp_name är nvarchar(390), med en standard på NULL. Wildcard-mönstermatchning stöds.

[ @sp_owner = ] N'sp_owner'

Namnet på schemat som proceduren tillhör. @sp_owner är nvarchar(384), med en standard på NULL. Wildcard-mönstermatchning stöds. Om @sp_owner inte specificeras gäller standardprocedurernas synlighetsregler för det underliggande databashanteringssystemet (DBMS).

I SQL Server, om det aktuella schemat innehåller en proprodur med det angivna namnet, returneras den proceduren. Om en icke-kvalificerad lagrad procedur specificeras, söker databasmotorn efter proceduren i följande ordning:

  • Det sys schemat för den aktuella databasen.

  • Anroparens standardschema om det körs i en batch eller i dynamisk SQL; eller, om namnet på den icke-kvalificerade proceduren förekommer i kroppen av en annan procedurdefinition, söks schemat som innehåller denna andra procedur härnäst.

  • Det dbo-schema i den aktuella databasen.

[ @sp_qualifier = ] N'sp_qualifier'

Namnet på procedurkvalificeraren. @sp_qualifier är sysname, med standardvärdet .NULL Olika DBMS-produkter stödjer tredelad namngivning för tabeller i formen <qualifier>.<schema>.<name>. I SQL Server representerar @sp_qualifier databasens namn. I vissa produkter representerar den servernamnet på databasmiljön i tabellen.

[ @fUsePattern = ] fUsePattern

Avgör om understrecket (_), procent (%) eller parenteserna ([ och ]) tolkas som jokertecken. @fUsePattern är bit, med standardvärdet .1

  • 0 = Mönstermatchning är fel.
  • 1 = Mönstermatchning är på.

Returnera kodvärden

Ingen.

Resultatuppsättning

Kolumnnamn Datatyp Description
PROCEDURE_QUALIFIER sysname Namn på procedurkvalificeraren. Denna kolumn kan vara NULL.
PROCEDURE_OWNER sysname Namn: Företagets ägare. Denna kolumn returnerar alltid ett värde.
PROCEDURE_NAME Nvarchar(134) Procedurnamn. Denna kolumn returnerar alltid ett värde.
NUM_INPUT_PARAMS int Reserverad för framtida användning.
NUM_OUTPUT_PARAMS int Reserverad för framtida användning.
NUM_RESULT_SETS int Reserverad för framtida användning.
REMARKS Varchar(254) Beskrivning av proceduren. SQL Server returnerar inget värde för denna kolumn.
PROCEDURE_TYPE smallint Procedurtyp. SQL Server returnerar alltid 2.0. Detta värde kan vara ett av följande alternativ:

0 = SQL_PT_UNKNOWN
1 = SQL_PT_PROCEDURE
2 = SQL_PT_FUNCTION

Anmärkningar

För maximal interoperabilitet bör gatewayklienten endast anta SQL-standardmönstermatchning, nämligen jokertecken i procent (%) och underscore (_).

Behörighetsinformationen om att köra åtkomst till en specifik lagrad procedur för den aktuella användaren kontrolleras inte nödvändigtvis; Därför är tillgång inte garanterad. Endast tredelad namngivning används. Detta innebär att endast lokalt lagrade procedurer, inte fjärrlagrade procedurer (som kräver fyrdelad namngivning), returneras när de körs mot SQL Server. Om serverattributet ACCESSIBLE_SPROC är Y i resultatuppsättningen för sp_server_info, returneras endast lagrade procedurer som kan utföras av den aktuella användaren.

sp_stored_procedures motsvarar SQLProcedures i ODBC. De returnerade resultaten är ordnade efter PROCEDURE_QUALIFIER, PROCEDURE_OWNER, och PROCEDURE_NAME.

Permissions

Kräver SELECT tillstånd på schemat.

Examples

A. Returnera alla lagrade procedurer i den aktuella databasen

Följande exempel returnerar alla lagrade procedurer i AdventureWorks2025-databasen.

USE AdventureWorks2022;
GO

EXECUTE sp_stored_procedures;

B. Returnera en enda lagrad procedur

Följande exempel ger en resultatmängd för den lagrade uspLogError proceduren.

USE AdventureWorks2022;
GO

EXECUTE sp_stored_procedures N'uspLogError', N'dbo', N'AdventureWorks2022', 1;