データベース プロジェクトで単体テストを作成しています。SSIS パッケージのスクリプト タスクで使用されるテストを作成しているストアド プロシージャがあります。結果セットは、パッケージ変数の 1 つにマップされます。
単体テスト スクリプトでその変数の結果を見つける方法がわかりません。
これがストアド プロシージャです。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
結果セットを変数に取り込む方法はありますか?