Difference between revisions of "Dbo.uspLogError (procedure)"

From dbscript Online Help
Jump to: navigation, search
 
Line 84: Line 84:
 
| Insert
 
| Insert
 
| Table
 
| Table
| [[dbo.ErrorLog_(_(table))|dbo.ErrorLog]]
+
| [[dbo.ErrorLog_(table)|dbo.ErrorLog]]
  
 
|- valign="top"
 
|- valign="top"
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
| [[dbo.uspPrintError_(_(procedure))|dbo.uspPrintError]]
+
| [[dbo.uspPrintError_(procedure)|dbo.uspPrintError]]
  
 
|}
 
|}
Line 106: Line 106:
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
| [[HumanResources.uspUpdateEmployeeHireInfo_(_(procedure))|HumanResources.uspUpdateEmployeeHireInfo]]
+
| [[HumanResources.uspUpdateEmployeeHireInfo_(procedure)|HumanResources.uspUpdateEmployeeHireInfo]]
  
 
|  
 
|  
Line 113: Line 113:
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
| [[HumanResources.uspUpdateEmployeeLogin_(_(procedure))|HumanResources.uspUpdateEmployeeLogin]]
+
| [[HumanResources.uspUpdateEmployeeLogin_(procedure)|HumanResources.uspUpdateEmployeeLogin]]
  
 
|  
 
|  
Line 120: Line 120:
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
| [[HumanResources.uspUpdateEmployeePersonalInfo_(_(procedure))|HumanResources.uspUpdateEmployeePersonalInfo]]
+
| [[HumanResources.uspUpdateEmployeePersonalInfo_(procedure)|HumanResources.uspUpdateEmployeePersonalInfo]]
  
 
|  
 
|  
Line 127: Line 127:
 
| Execute
 
| Execute
 
| Table
 
| Table
| [[Production.WorkOrder_(_(table))|Production.WorkOrder]]
+
| [[Production.WorkOrder_(table)|Production.WorkOrder]]
  
 
| Trigger
 
| Trigger
Line 134: Line 134:
 
| Execute
 
| Execute
 
| Table
 
| Table
| [[Production.WorkOrder_(_(table))|Production.WorkOrder]]
+
| [[Production.WorkOrder_(table)|Production.WorkOrder]]
  
 
| Trigger
 
| Trigger
Line 141: Line 141:
 
| Execute
 
| Execute
 
| Table
 
| Table
| [[Purchasing.PurchaseOrderDetail_(_(table))|Purchasing.PurchaseOrderDetail]]
+
| [[Purchasing.PurchaseOrderDetail_(table)|Purchasing.PurchaseOrderDetail]]
  
 
| Trigger
 
| Trigger
Line 148: Line 148:
 
| Execute
 
| Execute
 
| Table
 
| Table
| [[Purchasing.PurchaseOrderDetail_(_(table))|Purchasing.PurchaseOrderDetail]]
+
| [[Purchasing.PurchaseOrderDetail_(table)|Purchasing.PurchaseOrderDetail]]
  
 
| Trigger
 
| Trigger
Line 155: Line 155:
 
| Execute
 
| Execute
 
| Table
 
| Table
| [[Purchasing.PurchaseOrderHeader_(_(table))|Purchasing.PurchaseOrderHeader]]
+
| [[Purchasing.PurchaseOrderHeader_(table)|Purchasing.PurchaseOrderHeader]]
  
 
| Trigger
 
| Trigger
Line 162: Line 162:
 
| Execute
 
| Execute
 
| Table
 
| Table
| [[Purchasing.Vendor_(_(table))|Purchasing.Vendor]]
+
| [[Purchasing.Vendor_(table)|Purchasing.Vendor]]
  
 
| Trigger
 
| Trigger
Line 169: Line 169:
 
| Execute
 
| Execute
 
| Table
 
| Table
| [[Sales.SalesOrderDetail_(_(table))|Sales.SalesOrderDetail]]
+
| [[Sales.SalesOrderDetail_(table)|Sales.SalesOrderDetail]]
  
 
| Trigger
 
| Trigger
Line 176: Line 176:
 
| Execute
 
| Execute
 
| Table
 
| Table
| [[Sales.SalesOrderHeader_(_(table))|Sales.SalesOrderHeader]]
+
| [[Sales.SalesOrderHeader_(table)|Sales.SalesOrderHeader]]
  
 
| Trigger
 
| Trigger
Line 183: Line 183:
 
| Execute
 
| Execute
 
| Table
 
| Table
| [[Sales.Store_(_(table))|Sales.Store]]
+
| [[Sales.Store_(table)|Sales.Store]]
  
 
| Trigger
 
| Trigger

Latest revision as of 23:15, 23 June 2010

wikibot[edit]

Procedure dbo.uspLogError
Description Logs error information in the ErrorLog table about the error that caused execution to jump to the CATCH block of a TRY...CATCH construct. Should be executed from within the scope of a CATCH block otherwise it will return without inserting error information.

Source[edit]

-- uspLogError logs error information in the ErrorLog table about the 
-- error that caused execution to jump to the CATCH block of a 
-- TRY...CATCH construct. This should be executed from within the scope 
-- of a CATCH block otherwise it will return without inserting error 
-- information. 
CREATE PROCEDURE [dbo].[uspLogError] 
    @ErrorLogID [int] = 0 OUTPUT -- contains the ErrorLogID of the row inserted
AS                               -- by uspLogError in the ErrorLog table
BEGIN
    SET NOCOUNT ON;

    -- Output parameter value of 0 indicates that error 
    -- information was not logged
    SET @ErrorLogID = 0;

    BEGIN TRY
        -- Return if there is no error information to log
        IF ERROR_NUMBER() IS NULL
            RETURN;

        -- Return if inside an uncommittable transaction.
        -- Data insertion/modification is not allowed when 
        -- a transaction is in an uncommittable state.
        IF XACT_STATE() = -1
        BEGIN
            PRINT 'Cannot log error since the current transaction is in an uncommittable state. ' 
                + 'Rollback the transaction before executing uspLogError in order to successfully log error information.';
            RETURN;
        END

        INSERT [dbo].[ErrorLog] 
            (
            [UserName], 
            [ErrorNumber], 
            [ErrorSeverity], 
            [ErrorState], 
            [ErrorProcedure], 
            [ErrorLine], 
            [ErrorMessage]
            ) 
        VALUES 
            (
            CONVERT(sysname, CURRENT_USER), 
            ERROR_NUMBER(),
            ERROR_SEVERITY(),
            ERROR_STATE(),
            ERROR_PROCEDURE(),
            ERROR_LINE(),
            ERROR_MESSAGE()
            );

        -- Pass back the ErrorLogID of the row inserted
        SET @ErrorLogID = @@IDENTITY;
    END TRY
    BEGIN CATCH
        PRINT 'An error occurred in stored procedure uspLogError: ';
        EXECUTE [dbo].[uspPrintError];
        RETURN -1;
    END CATCH
END;

References[edit]

Dependency Type Object Type Referenced Object
Insert Table dbo.ErrorLog
Execute Procedure dbo.uspPrintError

Dependencies[edit]

Reference Type Object Type Referencing Object Child Type Child Object
Execute Procedure HumanResources.uspUpdateEmployeeHireInfo
Execute Procedure HumanResources.uspUpdateEmployeeLogin
Execute Procedure HumanResources.uspUpdateEmployeePersonalInfo
Execute Table Production.WorkOrder Trigger iWorkOrder
Execute Table Production.WorkOrder Trigger uWorkOrder
Execute Table Purchasing.PurchaseOrderDetail Trigger iPurchaseOrderDetail
Execute Table Purchasing.PurchaseOrderDetail Trigger uPurchaseOrderDetail
Execute Table Purchasing.PurchaseOrderHeader Trigger uPurchaseOrderHeader
Execute Table Purchasing.Vendor Trigger dVendor
Execute Table Sales.SalesOrderDetail Trigger iduSalesOrderDetail
Execute Table Sales.SalesOrderHeader Trigger uSalesOrderHeader
Execute Table Sales.Store Trigger iStore


automatically generated[edit]

procedure dbo.uspLogError
Description Logs error information in the ErrorLog table about the error that caused execution to jump to the CATCH block of a TRY...CATCH construct. Should be executed from within the scope of a CATCH block otherwise it will return without inserting error information.

-- uspLogError logs error information in the ErrorLog table about the 
-- error that caused execution to jump to the CATCH block of a 
-- TRY...CATCH construct. This should be executed from within the scope 
-- of a CATCH block otherwise it will return without inserting error 
-- information. 
CREATE PROCEDURE [dbo].[uspLogError] 
    @ErrorLogID [int] = 0 OUTPUT -- contains the ErrorLogID of the row inserted
AS                               -- by uspLogError in the ErrorLog table
BEGIN
    SET NOCOUNT ON;

    -- Output parameter value of 0 indicates that error 
    -- information was not logged
    SET @ErrorLogID = 0;

    BEGIN TRY
        -- Return if there is no error information to log
        IF ERROR_NUMBER() IS NULL
            RETURN;

        -- Return if inside an uncommittable transaction.
        -- Data insertion/modification is not allowed when 
        -- a transaction is in an uncommittable state.
        IF XACT_STATE() = -1
        BEGIN
            PRINT 'Cannot log error since the current transaction is in an uncommittable state. ' 
                + 'Rollback the transaction before executing uspLogError in order to successfully log error information.';
            RETURN;
        END

        INSERT [dbo].[ErrorLog] 
            (
            [UserName], 
            [ErrorNumber], 
            [ErrorSeverity], 
            [ErrorState], 
            [ErrorProcedure], 
            [ErrorLine], 
            [ErrorMessage]
            ) 
        VALUES 
            (
            CONVERT(sysname, CURRENT_USER), 
            ERROR_NUMBER(),
            ERROR_SEVERITY(),
            ERROR_STATE(),
            ERROR_PROCEDURE(),
            ERROR_LINE(),
            ERROR_MESSAGE()
            );

        -- Pass back the ErrorLogID of the row inserted
        SET @ErrorLogID = @@IDENTITY;
    END TRY
    BEGIN CATCH
        PRINT 'An error occurred in stored procedure uspLogError: ';
        EXECUTE [dbo].[uspPrintError];
        RETURN -1;
    END CATCH
END;


Dependency Type Object Type Referenced Object
Insert Table dbo.ErrorLog
Execute Procedure dbo.uspPrintError


Reference Type Object Type Referencing Object Child Type Child Object
Execute Procedure HumanResources.uspUpdateEmployeeHireInfo
Execute Procedure HumanResources.uspUpdateEmployeeLogin
Execute Procedure HumanResources.uspUpdateEmployeePersonalInfo
Execute Table Production.WorkOrder Trigger iWorkOrder
Execute Table Production.WorkOrder Trigger uWorkOrder
Execute Table Purchasing.PurchaseOrderDetail Trigger iPurchaseOrderDetail
Execute Table Purchasing.PurchaseOrderDetail Trigger uPurchaseOrderDetail
Execute Table Purchasing.PurchaseOrderHeader Trigger uPurchaseOrderHeader
Execute Table Purchasing.Vendor Trigger dVendor
Execute Table Sales.SalesOrderDetail Trigger iduSalesOrderDetail
Execute Table Sales.SalesOrderHeader Trigger uSalesOrderHeader
Execute Table Sales.Store Trigger iStore