Aracılığıyla paylaş


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.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

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