我编写了一个存储过程,格式如下:
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 行
必须以“@name = value”的形式传递参数号 5 和后续参数。使用“@name = value”形式后,所有后续参数都必须以“@name = value”形式传递。
如果我删除输出参数并执行该过程,我会得到所需的输出,但无法将结果作为输出。
EXEC usp_data_migration @sourceDatabase = 'Yousuf',
@sourceTable = 'emp',
@targetDatabase = '[City Branch]',
@targetTable = 'emp_tgt'
我应该怎么办?
提前致谢。