1

我正在我的数据库项目中构建单元测试。我有一个存储过程,我正在为其构建测试,用于 SSIS 包中的脚本任务。结果集被映射到包变量之一。

我不确定如何在单元测试脚本中找到该变量结果?

这是存储过程。这是AppInstanceID我想捕捉的:

Create Procedure [log].LogStartOfApplication
    @ApplicationName varchar(255)
As
 declare @ErrMsg varchar(255)
 declare @AppID int = (Select ApplicationID From cfg.Applications Where ApplicationName = @ApplicationName)

If (@AppID Is Null)
    begin
        set @ErrMsg = 'Cannot find ApplicationName ' + Coalesce(@ApplicationName, '<NULL>')
        raiserror(@ErrMsg,16,1)
        return-1
    end

Insert Into [log].SSISAppInstance
    (ApplicationID, StartDateTime, Status)
    Output inserted.AppInstanceID
    Values
    (@AppID, GetDate(), 'Running')

这是我的单元测试脚本:

-- database unit test for log.LogStartOfApplication
DECLARE @RC AS INT, @ApplicationName AS VARCHAR (255);

SELECT @RC = 0,
       @ApplicationName = 'Unit Test Application';

EXECUTE @RC = [log].[LogStartOfApplication] @ApplicationName;

SELECT @RC AS RC;

我认为该值会返回到@RC变量中,但当然不是。有没有办法在我的@RC变量中捕获结果集?

4

1 回答 1

1

使用带有 OUTPUT 参数的存储过程

于 2013-06-07T05:17:01.337 回答