我编写了一个具有以下格式的存储过程:
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 = '[City Branch]',
@targetTable = 'emp_tgt'
我应该怎么办?
提前致谢。