SSIS execute SQL タスクを使用してストアド プロシージャを実行しています。ストアド プロシージャでは、特定の入力値を渡してテーブルに挿入しています。このテーブルには、一意の識別子が主キーとして含まれています。戻り出力として、現在の値が必要です。一意の識別子の。したがって、以下に示すように、変数 @logid に取得しています
INSERT INTO logging.execution_log
(ParentLogID,
Description,
PackageName,
PackageGuid,
MachineName,
ExecutionGuid,
LogicalDate,
Operator,
StartTime,
EndTime,
Status,
FailureTask)
SELECT @ParentLogID,
@Description,
@PackageName,
Cast(@PackageGuid AS UNIQUEIDENTIFIER),
@MachineName,
Cast(@ExecutionGuid AS UNIQUEIDENTIFIER),
@logicalDate,
@operator,
Getdate(),
NULL,
@status,
NULL
SET @LogID = Cast(Scope_identity() AS INT) ----@logid is output variable from ssis
しかし、意図した結果が得られません。ここで、グローバル変数の割り当ては、set演算子を使用して @logid に行われ、sql ssis タスク変数を実行するようにマップされています。いくつかの調査の結果、グローバル変数を割り当てるには、SQL クエリの最初のステートメントとしてSET NOCOUNTオプションを ON に設定する必要があることがわかりました。これも実行しましたが、何も返されません....... .ちなみに*なぜこの SET NOCOUNT パラメータを設定する必要があるのですか??? *どんな助けも歓迎