我正在使用 SSIS 执行 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 任务变量。经过一番研究,我发现为了分配全局变量,我必须将SET NOCOUNT选项设置为 SQL 查询中的第一条语句。我也这样做了。但它没有返回任何东西...... .by the way *为什么我们需要设置这个SET NOCOUNT参数???*欢迎任何帮助