在调用T-SQL脚本中捕获存储过程的值输出

时间:2013-06-07 04:01:30

标签: sql-server tsql stored-procedures

我正在我的数据库项目中构建单元测试。我有一个存储过程,我正在构建测试,用于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变量中捕获结果集?

1 个答案:

答案 0 :(得分:1)