gpt4 book ai didi

sql-server - 如何将输出参数传递给存储过程?

转载 作者:行者123 更新时间:2023-12-02 11:58:03 25 4
gpt4 key购买 nike

我编写了一个具有以下格式的存储过程:

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

我收到一条错误消息:

Msg 119, Level 15, State 1, Line 41
Must pass parameter number 5 and subsequent parameters as '@name = value'. After the form '@name = value' has been used, all subsequent parameters must be passed in the form '@name = value'.

如果我删除了输出参数并执行该过程,我会得到所需的输出,但无法将结果作为输出。

EXEC usp_data_migration @sourceDatabase = 'Yousuf',
@sourceTable = 'emp',
@targetDatabase = '[City Branch]',
@targetTable = 'emp_tgt'

我应该做什么?

提前致谢。

最佳答案

错误消息是不言自明的 - 您应该命名所有参数。

DECLARE @finaloutput1 varchar(300);

EXEC dbo.usp_data_migration -- always use schema prefix
@sourceDatabase = 'Yousuf',
@sourceTable = 'emp',
@targetDatabase = '[City Branch]',
@targetTable = 'emp_tgt',
@finaloutput = @finaloutput1 OUTPUT;

SELECT @finaloutput1;

关于sql-server - 如何将输出参数传递给存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21058541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com