IF OBJECT_ID('dbo.usp_PrintDebug', 'P') IS NULL EXECUTE('CREATE PROCEDURE dbo.usp_PrintDebug AS SELECT 1') ; GO ALTER PROCEDURE dbo.usp_PrintDebug ( @variableName NVARCHAR(MAX) = '', @variableValue NVARCHAR(MAX) = '', @printMessage NVARCHAR(MAX) = '' ) /* EXECUTE dbo.usp_PrintDebug @variableName = 'maxDate', @variableValue = '' EXECUTE dbo.usp_PrintDebug @printMessage = 'start_debug' EXECUTE dbo.usp_PrintDebug @printMessage = 'end_debug' EXECUTE dbo.usp_PrintDebug @printMessage = 'Test debug' */ AS BEGIN DECLARE @Crlf NVARCHAR(10) = CHAR(13) ; BEGIN TRY IF @printMessage = '' IF @variableValue IS NOT NULL AND CAST(@variableValue AS NVARCHAR) != '' PRINT '@' + @variableName + ' = {' + CAST(@variableValue AS NVARCHAR) + '}' ELSE IF CAST(@variableValue AS NVARCHAR) = '' PRINT @variableName + ' = {Empty String}' ELSE IF @variableValue IS NULL PRINT @variableName + ' = {NULL}'; IF @printMessage LIKE 'start_debug %' PRINT '/******* Start Debug' + REPLACE(@printMessage, 'start_debug' , ' ') + @Crlf; IF @printMessage LIKE 'end_debug %' PRINT @Crlf + '--End Deubg ' + REPLACE(@printMessage, 'end_debug' , '') + ' *********/'; IF @printMessage NOT LIKE '%_debug%' PRINT @printMessage; END TRY BEGIN CATCH EXECUTE usp_LogError; END CATCH END; go