Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistem Platform Analitik (PDW)
Titik akhir analitik SQL di Microsoft Fabric
Gudang di Microsoft Fabric
Database SQL di Microsoft Fabric
Fungsi ini mengembalikan nama prosedur tersimpan atau pemicu di mana kesalahan terjadi, jika kesalahan tersebut CATCH menyebabkan blok TRY...CATCH konstruksi dijalankan.
- Pengembalian versi SQL Server 2017 (14.x) dan versi yang lebih baru
schema_name.stored_procedure_name - Pengembalian SQL Server 2016 (13.x) dan Azure SQL Database
stored_procedure_name
Sintaks
ERROR_PROCEDURE ( )
Tipe pengembalian
nvarchar(128)
Mengembalikan nilai
Ketika dipanggil dalam CATCH blok, ERROR_PROCEDURE mengembalikan nama prosedur tersimpan atau pemicu di mana kesalahan berasal.
ERROR_PROCEDURE mengembalikan NULL jika kesalahan tidak terjadi dalam prosedur atau pemicu tersimpan.
ERROR_PROCEDURE
NULL mengembalikan ketika dipanggil di luar cakupan CATCH blok.
Keterangan
ERROR_PROCEDURE mendukung panggilan di mana saja dalam cakupan CATCH blok.
ERROR_PROCEDURE mengembalikan nama prosedur tersimpan atau pemicu di mana kesalahan terjadi, terlepas dari berapa kali ia berjalan, atau di mana ia berjalan, dalam cakupan CATCH blok. Hasil ini berbeda dengan fungsi seperti @@ERROR, yang hanya mengembalikan angka kesalahan dalam pernyataan segera setelah yang menyebabkan kesalahan.
Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)
J. Menggunakan ERROR_PROCEDURE dalam blok CATCH
Contoh ini menunjukkan prosedur tersimpan yang menghasilkan kesalahan divide-by-zero.
ERROR_PROCEDURE mengembalikan nama prosedur tersimpan tempat kesalahan terjadi.
-- 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
Berikut set hasilnya.
-----------
(0 row(s) affected)
ErrorProcedure
--------------------
usp_ExampleProc
(1 row(s) affected)
B. Menggunakan ERROR_PROCEDURE dalam blok CATCH dengan alat penanganan kesalahan lainnya
Contoh ini menunjukkan prosedur tersimpan yang menghasilkan kesalahan divide-by-zero. Seiring dengan nama prosedur tersimpan tempat kesalahan terjadi, prosedur tersimpan mengembalikan informasi tentang kesalahan.
-- 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
Berikut set hasilnya.
-----------
(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)