, DMV - , sql_text , , . DBCC - , . , , ( ), , ?
ALTER PROCEDURE dbo.usp_RethrowError
AS
BEGIN
SET NOCOUNT ON;
IF ERROR_NUMBER() IS NULL
RETURN;
DECLARE
@ErrorMessage NVARCHAR(MAX),
@ErrorNumber INT,
@ErrorSeverity INT,
@ErrorState INT,
@ErrorLine INT,
@ErrorProcedure NVARCHAR(200);
SELECT
@ErrorNumber = ERROR_NUMBER(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE(),
@ErrorLine = ERROR_LINE(),
@ErrorProcedure = ISNULL(ERROR_PROCEDURE(), '-');
SELECT @ErrorMessage =
N'Error %d, Level %d, State %d, Procedure %s, Line %d, ' +
'Message: '+ ERROR_MESSAGE();
DECLARE
@sql NVARCHAR(255),
@original_statement NVARCHAR(MAX);
SET @sql = N'DBCC INPUTBUFFER(' + RTRIM(@@SPID) + ');';
CREATE TABLE
(
EventType SYSNAME,
Parameters INT,
EventInfo NVARCHAR(MAX)
);
INSERT
SELECT TOP 1 @original_statement = EventInfo
FROM
SET @ErrorMessage = @ErrorMessage + N'
Original statement:
' + @original_statement + '
';
RAISERROR
(
@ErrorMessage,
@ErrorSeverity,
1,
@ErrorNumber,
@ErrorSeverity,
@ErrorState,
@ErrorProcedure,
@ErrorLine
);
END
GO