Sql server 在调用T-SQL脚本中捕获存储过程输出的值
我正在数据库项目中构建单元测试。我有一个正在为其构建测试的存储过程,该存储过程用于SSIS包中的脚本任务。结果集映射到其中一个包变量 我不确定如何在我的单元测试脚本中找到这个变量结果 这是存储过程。这是我要捕获的Sql server 在调用T-SQL脚本中捕获存储过程输出的值,sql-server,tsql,stored-procedures,Sql Server,Tsql,Stored Procedures,我正在数据库项目中构建单元测试。我有一个正在为其构建测试的存储过程,该存储过程用于SSIS包中的脚本任务。结果集映射到其中一个包变量 我不确定如何在我的单元测试脚本中找到这个变量结果 这是存储过程。这是我要捕获的AppInstanceID: Create Procedure [log].LogStartOfApplication @ApplicationName varchar(255) As declare @ErrMsg varchar(255) declare @AppID i
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')
我原以为该值会返回到@RC
变量中,但它当然不是。是否有方法捕获my@RC
变量中的结果集?
-- 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;