Jak przekazać parametr wyjściowy do procedury składowanej?

Napisałem procedurę składowaną w następującym formacie:

ALTER PROCEDURE usp_data_migration 
   (@sourceDatabase varchar(50),
    @sourceTable varchar(50),
    @targetDatabase varchar(50),
    @targetTable varchar(50),
    @finaloutput varchar(max) output)
AS
BEGIN
----Set of SQL Blocks


END

Następnie wykonuję procedurę:

DECLARE @finaloutput1 varchar(300)

EXEC usp_data_migration 'Yousuf', 'emp', '[City Branch]', 'emp_tgt', @finaloutput1 output 

SELECT @finaloutput1 

Wykonując w ten sposób nie poprawiam wyjścia.

Kiedy wykonuję w ten sposób:

DECLARE @finaloutput1 varchar(300)

EXEC usp_data_migration @sourceDatabase = 'Yousuf',
                        @sourceTable = 'emp',
                        @targetDatabase = '[City Branch]',
                        @targetTable = 'emp_tgt',
                        @finaloutput1 output 

SELECT @finaloutput1 

Dostaję komunikat o błędzie:

Msg 119, Level 15, State 1, Line 41
Musi podać parametr numer 5 i kolejne parametry jako „@name = value”. Po użyciu formularza „@name = value” wszystkie kolejne parametry muszą być przekazywane w postaci „@name = value”.

A jeśli usuną mój parametr wyjściowy i wykonam procedurę, otrzymam pożądane wyjście, ale nie jestem w stanie uzyskać wyniku jako wyniku.

EXEC usp_data_migration @sourceDatabase = 'Yousuf',
                        @sourceTable = 'emp',
                        @targetDatabase = '[City Branch]',
                        @targetTable = 'emp_tgt'

Co powinienem zrobić?

Z góry dziękuję.

questionAnswers(3)

yourAnswerToTheQuestion