【发布时间】:2014-01-30 06:22:47
【问题描述】:
我写了一个存储过程,格式如下:
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'
我该怎么办?
提前致谢。
【问题讨论】:
标签: sql-server tsql stored-procedures output output-parameter