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ę.