# Procedure: uspLogError

## Properties

Property | Value
--- | ---
Name | uspLogError
ID | 53575229
Schema | dbo
Owner | dbo
Type | SQL STORED PROCEDURE
Execute As | Caller
Encrypted |
ANSI NULLS |
Uses Quoted Identifier |
Published |
Schema Published |
Execution Replicated |
Replication Serializable Only |
Skips Replication Constraints |
Is Recompiled |
Uses Database Collation |
Null on Null Input |
MS Shipped |
Modify Date | 8/8/2010 5:21:43 PM
Create Date | 8/8/2010 5:21:43 PM

## Extended Properties

Name | Value
--- | ---
MS_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.

## Permissions

No object level permissions defined.

## Parameters

Parameter Name | Datatype | Output | Cursor Ref | Readonly | Has Default Value | Default Value | Xml Collection Name | Description
--- | --- | --- | --- | --- | --- | --- | --- | ---
@ErrorLogID | int |  |  |  |  |  |  | Output parameter for the stored procedure uspLogError. Contains the ErrorLogID value corresponding to the row inserted by uspLogError in the ErrorLog table.

## Objects that depend on [uspLogError]

- dbo.uspLogError
  - HumanResources.uspUpdateEmployeeHireInfo
  - HumanResources.uspUpdateEmployeeLogin
  - HumanResources.uspUpdateEmployeePersonalInfo
  - Production.WorkOrder
    - Production.iWorkOrder
    - Production.uWorkOrder
    - Production.WorkOrderRouting
  - Purchasing.PurchaseOrderDetail
    - Purchasing.iPurchaseOrderDetail
    - Purchasing.uPurchaseOrderDetail
  - Purchasing.PurchaseOrderHeader
    - Purchasing.uPurchaseOrderHeader
  - Purchasing.Vendor
    - dbo.ufnGetContactInformation
    - Purchasing.dVendor
    - Purchasing.ProductVendor
    - Purchasing.vVendorWithAddresses
    - Purchasing.vVendorWithContacts
  - Sales.SalesOrderDetail
    - Sales.iduSalesOrderDetail
    - Sales.ufn_SalesByStore
  - Sales.SalesOrderHeader
    - Sales.SalesOrderHeaderSalesReason
    - Sales.uSalesOrderHeader
    - Sales.vSalesPersonSalesByFiscalYears

## Objects on which [uspLogError] depends

- dbo.uspLogError
  - dbo.ErrorLog
  - dbo.uspPrintError

## SQL

Script
SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 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; SET @ErrorLogID = 0; BEGIN TRY IF ERROR_NUMBER() IS NULL RETURN; 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() ); SET @ErrorLogID = @@IDENTITY; END TRY BEGIN CATCH PRINT 'An error occurred in stored procedure uspLogError: '; EXECUTE [dbo].[uspPrintError]; RETURN -1; END CATCH END; EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'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.' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'PROCEDURE',@level1name=N'uspLogError' EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Output parameter for the stored procedure uspLogError. Contains the ErrorLogID value corresponding to the row inserted by uspLogError in the ErrorLog table.' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'PROCEDURE',@level1name=N'uspLogError', @level2type=N'PARAMETER',@level2name=N'@ErrorLogID'

#### See also

List of Procedures