--:SetVar Procedure "AUX:RaiseIncorrectProcedureCall"
if exists( select * from [sysobjects] (nolock) where [type]='P' and [name]=N'AUX:RaiseIncorrectProcedureCall' )
   drop procedure [AUX:RaiseIncorrectProcedureCall]
GO
/* Translated by $SQLTRANS utility (SQL-file technology). Method author: Sergei Y.Kitáev.
** Script translation date-time: 2022-11-27 00:29:29.24 (stamp of SQL-file generation). */
create procedure [AUX:RaiseIncorrectProcedureCall]
   @ProcedureName    nvarchar(max),
   @CauseMessage     nvarchar(max) = null,
   @InMainLanguage   nvarchar(max) = null
AS
/*==================================================================================================
# SQLAUX scripting library | Author: Sergei Y.Kitáev
----------------------------------------------------------------------------------------------------
#
# ERROR GENERATION OF INCORRECT CALL OF STORED PROCEDURE:
#
# === Usage: ===
# exec [AUX:RaiseIncorrectProcedureCall] <Procedure name>, <Cause message>
# exec [AUX:RaiseIncorrectProcedureCall] <Procedure name>,
#                                        <Message in default language>, <Message in main language>
#
==================================================================================================*/
begin begin try set xact_abort off; set ansi_nulls,ansi_null_dflt_on,quoted_identifier,arithabort,nocount on; set implicit_transactions off; declare @initial_tran_count_aux int, @is_local_tran_open_aux bit; select @initial_tran_count_aux=@@trancount, @is_local_tran_open_aux=0; end try begin catch throw; end catch; begin try
----------------------------------------------------------------------------------------------------

declare @ErrorMessage nvarchar(max)
set @ErrorMessage = dbo.[AUX:TechLocalText](
   'Incorrect call of ['+ISNULL(@ProcedureName,'')+'] stored procedure.',
   N'Некорректный вызов процедуры ['+ISNULL(@ProcedureName,'')+N'].' )
if @CauseMessage is not null
   set @ErrorMessage = @ErrorMessage + (char(13)+char(10)) + dbo.[AUX:TechLocalText](
      @CauseMessage, @InMainLanguage )
raiserror (@ErrorMessage,11,1)

----------------------------------------------------------------------------------------------------
if @is_local_tran_open_aux=1 raiserror ('Not closed local transaction was detected, previously opened by BEGIN_TRANSACTION_AUX macro.',11,1); end try begin catch if @is_local_tran_open_aux=1 and (@@trancount>@initial_tran_count_aux or xact_state()=-1) rollback transaction; set @is_local_tran_open_aux=0; throw; end catch; end
/*================================================================================================*/
GO
/*
exec [AUX:RaiseIncorrectProcedureCall] 'XProc'
exec [AUX:RaiseIncorrectProcedureCall] 'XProc', N'Несовместимые значения параметров.'
exec [AUX:RaiseIncorrectProcedureCall] 'XProc', 'Incompatible parameters.', N'Несовместимые значения параметров.'
*/
