DEFINITIONS

Definitions More Info.
Definition ID505
TitleSQL
CategoryNOTES
DefinitionTRY..CATCH - XACT_ABORT ON--ONEMLI
Definition DescriptionTRY..CATCH - XACT_ABORT ON - DOOMED - @@error - Exception TRY..CATCH: TRY..CATCH bloğu Exception yapısında kullanılır. Bu sayade eski versiyonda kullanılan @@error değişkenine ihtiyaç kalmamıştır. - TRY bloğu esas çalışması gereken kodu içerirken, - CATH bloğu ise hata durumunda devreye girecek ifadeleri içerir. Kullanım şekli: BEGIN TRY {sql_ifadesi / sql_ifadeleri} END TRY BEGIN CATH { sql_ifadesi / sql_ifadeleri } END CATCH Örnek: USE AdventureWorks2014; GO BEGIN TRY -- This PRINT statement will not run because the batch -- does not begin execution. PRINT N'Starting execution'; -- This SELECT statement contains a syntax error that -- stops the batch from compiling successfully. SELECT ** FROM HumanResources.Employee; END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber ,ERROR_SEVERITY() AS ErrorSeverity ,ERROR_STATE() AS ErrorState ,ERROR_PROCEDURE() AS ErrorProcedure ,ERROR_LINE() AS ErrorLine ,ERROR_MESSAGE() AS ErrorMessage; END CATCH; GO Bu yapının geçerli olması için mutlaka otomatik RollBack yapısının aktif hale getirilmesi gerekir. Bunun için configurationdan (sp_configure) SET XACT_ABORT ON ifadesi kullanılmalı veya SQL Server özellikler bölümünde aktif hale getirilmelidir. Bir Tramsaction yapısında sorun çıkarsa, Transaction açık kalmaya devam eder ve commit olmaz. Bu durumda DOOMED adı verilir. Bunu kurtarmak için mutlaka CATCH bloğu içinde rollback transaction ifadesini kullanmak gerekir. @@error ifadesini kullanmka gerekirse bunu; CATCH bloğunda ilk ifade olarak kullanmak gerekir. Eğer kendi Exception yapımızı TRY bloğu içinde kullanmak ihtiyacı duyarsak, RAISERROR..WITH TRAN_ABORT ifadesi ile beraber kullanmamız gerekir.
RecordBycunay
Record Date11-05-2014 16:32:40
Düzenle
Kopyala
Sil