CREATE PROCEDURE sys.sp_MSget_new_errorid
(
@errorid int OUTPUT,
@xact_seqno varbinary(16) = NULL,
@command_id int = NULL
)
AS
begin
set nocount on
SELECT @errorid = NULL
BEGIN TRAN sp_MSget_new_errorid
SELECT TOP(1) @errorid = id FROM dbo.MSrepl_errors with (UPDLOCK PAGLOCK)
ORDER BY id DESC
IF @errorid IS NULL
SELECT @errorid = 1
ELSE
SELECT @errorid = @errorid + 1
INSERT INTO dbo.MSrepl_errors(id, time, error_type_id, source_type_id, source_name,
error_code, error_text, xact_seqno, command_id, session_id)
VALUES (@errorid, GETDATE(), NULL, /* Error with type NULL is placeholder, refer to sp_MSget_repl_error */
NULL, NULL, NULL, NULL, @xact_seqno, @command_id, NULL)
/* return an 0 error_id if failed to insert the row */
IF @@ERROR <> 0
SELECT @errorid = 0
SELECT @errorid
COMMIT TRAN
end