error_procedure (Transact-SQL)
saklı yordam veya bir hata oluştu burada Tetikleyici adı bir try… catch blok neden verircatch yapı çalıştırılacak.
Sözdizimi
ERROR_PROCEDURE ( )
Dönüş Türleri
nvarchar(126)
Dönüş Değeri
İçinde bir catch blokçağrıldığında, hatanın oluştuğu saklı yordam adını döndürür.
Hata saklı yordam veya tetikleyiciyi içinde gerçekleşmedi ise null döndürür.
kapsam bir catch blokdışında adlı null döndürür.
Açıklamalar
error_procedure, herhangi bir kapsam bir catch blokiçinde çağrılabilir.
error_procedure, hatanın, buna denir ya da burada kapsam catch blokiçinde adlı sayısı ne olursa olsun meydana saklı yordam veya tetikleyiciyi adını döndürür.Bu, hataya neden olan bir hemen deyim veya catch blokilk deyim hata numarasını döndürür gibi işlevler @@ error, ile karşıttır.
Yuvalanmış catch bloklarında error_procedure adını saklı yordam veya tetikleyiciyi belirli kapsam başvuruda bulunulan catch blok döndürür.Örneğin, catch blok bir try…İç içe try… catch yapı olabilirCATCH.Yuvalanmış catch blokiçinde error_procedure saklı yordam adını verir veya yuvalanmış catch blok, hatanın oluştuğu tetikleyici çağrılmış.error_procedure catch blokiçinde çalıştırırsanız, catch blok, hatanın oluştuğu tetikleyici çağrılan ya da saklı yordam adını döndürür.
Örnekler
A.error_procedure bir catch blokkullanma
Aşağıdaki kod örneği, bir bölme sıfır hata üretir bir saklı yordam göstermektedir.ERROR_PROCEDUREhatanın oluştuğu saklı yordam adını döndürür.
USE AdventureWorks2008R2;
GO
-- 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
B.error_procedure bir catch blok diğer hata işleme araçları ile kullanma
Aşağıdaki kod örneği, bir bölme sıfır hata üretir bir saklı yordam göstermektedir.Hatanın oluştuğu saklı yordam adı ile birlikte, hata bilgileri döndürülür.
USE AdventureWorks2008R2;
GO
-- 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
Ayrıca bkz.