Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Warehouse in Microsoft Fabric
Deze functie retourneert de naam van de opgeslagen procedure of trigger waar een fout optreedt, als deze fout het CATCH blok van een TRY...CATCH constructie heeft veroorzaakt.
- SQL Server 2017 (14.x) en latere versies retourneren
schema_name.stored_procedure_name - SQL Server 2016 (13.x) en Azure SQL Database retourneren
stored_procedure_name
Transact-SQL syntaxis-conventies
Syntaxis
ERROR_PROCEDURE ( )
Retourtypen
Nvarchar(128)
Retourwaarde
Wanneer een CATCH blok wordt aangeroepen, ERROR_PROCEDURE retourneert u de naam van de opgeslagen procedure of trigger waarin de fout afkomstig is.
ERROR_PROCEDURE retourneert NULL als de fout niet is opgetreden binnen een opgeslagen procedure of trigger.
ERROR_PROCEDURE retourneert NULL wanneer aangeroepen buiten het bereik van een CATCH blok.
Opmerkingen
ERROR_PROCEDURE ondersteunt aanroepen binnen het bereik van een CATCH blok.
ERROR_PROCEDURE retourneert de naam van de opgeslagen procedure of trigger waar een fout optreedt, ongeacht hoe vaak deze wordt uitgevoerd of waar deze wordt uitgevoerd, binnen het bereik van het CATCH blok. Dit resultaat contrasteert met een functie zoals @@ERROR, die alleen een foutnummer in de instructie retourneert direct na de instructie die een fout veroorzaakt.
Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)
Eén. ERROR_PROCEDURE gebruiken in een CATCH-blok
In dit voorbeeld ziet u een opgeslagen procedure waarmee een fout tussen delen en nul wordt gegenereerd.
ERROR_PROCEDURE retourneert de naam van de opgeslagen procedure waarin de fout is opgetreden.
-- Verify that the stored procedure does not already exist.
IF OBJECT_ID('usp_ExampleProc', 'P') IS NOT NULL
DROP PROCEDURE usp_ExampleProc;
GO
-- Create a stored procedure that
-- generates a divide-by-zero error.
CREATE PROCEDURE usp_ExampleProc
AS
SELECT 1 / 0;
GO
BEGIN TRY
-- Execute the stored procedure inside the TRY block.
EXECUTE usp_ExampleProc;
END TRY
BEGIN CATCH
SELECT ERROR_PROCEDURE() AS ErrorProcedure;
END CATCH;
GO
Hier is het resultatenoverzicht.
-----------
(0 row(s) affected)
ErrorProcedure
--------------------
usp_ExampleProc
(1 row(s) affected)
B. Gebruik ERROR_PROCEDURE in een CATCH-blok met andere hulpprogramma's voor foutafhandeling
In dit voorbeeld ziet u een opgeslagen procedure waarmee een fout tussen delen en nul wordt gegenereerd. Samen met de naam van de opgeslagen procedure waar de fout is opgetreden, retourneert de opgeslagen procedure informatie over de fout.
-- Verify that the stored procedure does not already exist.
IF OBJECT_ID('usp_ExampleProc', 'P') IS NOT NULL
DROP PROCEDURE usp_ExampleProc;
GO
-- Create a stored procedure that
-- generates a divide-by-zero error.
CREATE PROCEDURE usp_ExampleProc
AS
SELECT 1 / 0;
GO
BEGIN TRY
-- Execute the stored procedure inside the TRY block.
EXECUTE usp_ExampleProc;
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_STATE() AS ErrorState,
ERROR_PROCEDURE() AS ErrorProcedure,
ERROR_MESSAGE() AS ErrorMessage,
ERROR_LINE() AS ErrorLine;
END CATCH;
GO
Hier is het resultatenoverzicht.
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorMessage ErrorLine
----------- ------------- ----------- ---------------- ---------------------------------- -----------
8134 16 1 usp_ExampleProc Divide by zero error encountered. 6
(1 row(s) affected)