我用以下格式编写了一个存储过程:
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
然后,我正在执行程序:
DECLARE @finaloutput1 varchar(300)
EXEC usp_data_migration 'Yousuf', 'emp', '[City Branch]', 'emp_tgt', @finaloutput1 output 
SELECT @finaloutput1 
通过这种方式执行我没有正确的输出.
当我执行这种方式时:
DECLARE @finaloutput1 varchar(300)
EXEC usp_data_migration @sourceDatabase = 'Yousuf',
                        @sourceTable = 'emp',
                        @targetDatabase = '[City Branch]',
                        @targetTable = 'emp_tgt',
                        @finaloutput1 output 
SELECT @finaloutput1 
我收到一条错误消息:
消息119,级别15,状态1,行41
必须将参数编号5和后续参数作为"@name = value"传递.在使用"@name = value"形式之后,必须以"@name = value"形式传递所有后续参数.
如果我删除了输出参数并执行了该过程,我得到了我想要的输出但是我无法将结果作为输出.
EXEC usp_data_migration @sourceDatabase = 'Yousuf',
                        @sourceTable = 'emp',
                        @targetDatabase …