Como passar o parâmetro de saída para um procedimento armazenado?
Eu escrevi um procedimento armazenado com o seguinte formato:
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
Então, estou executando o procedimento:
DECLARE @finaloutput1 varchar(300)
EXEC usp_data_migration 'Yousuf', 'emp', '[City Branch]', 'emp_tgt', @finaloutput1 output
SELECT @finaloutput1
Ao executar dessa maneira, não faço a saída adequada.
Quando executo desta maneira:
DECLARE @finaloutput1 varchar(300)
EXEC usp_data_migration @sourceDatabase = 'Yousuf',
@sourceTable = 'emp',
@targetDatabase = '[City Branch]',
@targetTable = 'emp_tgt',
@finaloutput1 output
SELECT @finaloutput1
Recebo uma mensagem de erro dizendo:
Msg 119, Nível 15, Estado 1, Linha 41
Deve passar o número de parâmetro 5 e os parâmetros subsequentes como '@name = value'. Depois que o formulário '@name = value' for usado, todos os parâmetros subsequentes deverão ser passados no formato '@name = value'.
E se eu removi meu parâmetro de saída e execute o procedimento, obtenho a saída desejada, mas não consigo obter meu resultado como saída.
EXEC usp_data_migration @sourceDatabase = 'Yousuf',
@sourceTable = 'emp',
@targetDatabase = '[City Branch]',
@targetTable = 'emp_tgt'
O que devo fazer?
Desde já, obrigado.