Welcome to Sign in | Help
in Search

SQL Server 2000 - Try...Catch (intrebare de pe ITBoard)

Last post 10-31-2006, 9:08 AM by ggciubuc. 4 replies.
Sort Posts: Previous Next
  •  10-30-2006, 3:46 PM 633

    SQL Server 2000 - Try...Catch (intrebare de pe ITBoard)

     

    Cum as putea sa fac in sql ceva asemanator unui try... catch... din vb.net.

    Problema mea este ca am o procedura ce executa intr-un cursor o alta procedura care "in unele conditii crapa"...si as vrea ca in momentul in care aceast lucru se intampla sa loghez o eroare intr-un tabel si sa se treaca la urmatoarea inregistrare din cursor fara sa imi afiseze un mesaj de eroare...

     


    Cristian Andrei Lefter, SQL Server MVP
    MCT, MCSA, MCDBA, MCAD, MCSD .NET,
    MCTS, MCITP - Database Administrator SQL Server 2005
    http://sqlserver.ro
    Filed under:
  •  10-30-2006, 3:57 PM 634 in reply to 633

    Re: SQL Server 2000 - Try...Catch (intrebare de pe ITBoard)

    O modalitate ar fi cum a indicat si Catalin folosirea @@ERROR care intoarce numarul de eroare pentru ultima instructiune executata. Atentie valoarea @@ERROR este resetata dupa fiecare instructiune.

    O alta modalitate ar fi sa faceti debug la procedura stocata sau sa folositi SQL Server Profiler.

    Aveti in urmatorul link o solutie completa de monitorizare a erorilor (sectiunea Detailed Analysis Process): http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/sqlops7.mspx#E1G

    Alte referinte:

    Implementing Error Handling with Stored Procedures

    Error Handling in SQL Server – a Background

     


    Cristian Andrei Lefter, SQL Server MVP
    MCT, MCSA, MCDBA, MCAD, MCSD .NET,
    MCTS, MCITP - Database Administrator SQL Server 2005
    http://sqlserver.ro
  •  10-30-2006, 4:42 PM 636 in reply to 634

    Re: SQL Server 2000 - Try...Catch (intrebare de pe ITBoard)

    Un mecanism care iti permite sa treci la un rand urmator fara sa crape tranzactia este si cel in care SET XACT_ABORT se pune pe  OFF

    (vezi http://msdn2.microsoft.com/en-us/library/ms188792.aspx ) dar ca sa si prinzi eroarea, nu-mi dau seama cum. Ce-mi vine acum in minte este ca poti sa compari nr. de inregistrari de prelucrat cu nr. de inregistrari care se prelucreaza in mod real; daca raportul nu e 1 inseamna ca pe cel putin o inregistrare a intervenit o eroare.

    In alta ordine de idei prin DTS si actualul SSIS poti seta pe un package numarul de linii dupa care sa crape executia acestuia- poate alegeti varianta asta!

     


    Gheorghe Ciubuc,SQL Server Influencer, MCP(SQL 2000), MCTS (SQL Server 2005) , OCA(Oracle 9i), Sybase(Brainbench)
  •  10-30-2006, 6:41 PM 640 in reply to 636

    Re: SQL Server 2000 - Try...Catch (intrebare de pe ITBoard)

    SET XACT_ABORT OFF din pacate nu functioneaza cu toate erorile. TRY...CATCH ar fi ideal (desi si in cazul acesta nu pot fi prinse toate erorile) insa in cazul asta e vorba de SQL Server 2000 si nu de SQL Server 2005.
    Cristian Andrei Lefter, SQL Server MVP
    MCT, MCSA, MCDBA, MCAD, MCSD .NET,
    MCTS, MCITP - Database Administrator SQL Server 2005
    http://sqlserver.ro
  •  10-31-2006, 9:08 AM 646 in reply to 640

    Re: SQL Server 2000 - Try...Catch (intrebare de pe ITBoard)

    Chiar daca intrebarea se refera la SQL 2000 , trebuie sa spun ca la SQL 2005 varianta cu SSIS permite tratarea erorilor (asa cum a pomenit Diana la SQL Server Day), deci ar fi de luat in calcul trecere pe SQL 2005!


    Gheorghe Ciubuc,SQL Server Influencer, MCP(SQL 2000), MCTS (SQL Server 2005) , OCA(Oracle 9i), Sybase(Brainbench)
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems