0

这是我的脚本,我在其中抓取 SCOPE_IDENTITY() 并分配给 SSIS 包变量。

--START:  SCRIPT TO CHECK IF THERE IS ENTRY FOR 'UNKOWNN'  IN AUDIT DIMESNION - IF NOT INSERT

IF NOT EXISTS (SELECT AUDIT_SK FROM SHARED.AUDIT_DIM WHERE AUDIT_SK = -1)
BEGIN
SET IDENTITY_INSERT SHARED.AUDIT_DIM ON 
INSERT INTO [SHARED].[AUDIT_DIM]
       (AUDIT_SK
       ,[JOB_ID]
       ,[OUTPUT_STREAM_ID]
       ,[OUTPUT_STREAM_DESC]
       ,[SELECTION_START_DATE]
       ,[SELECTION_END_DATE]
       ,[JOB_RUN_DATE])
 VALUES
       (-1
       ,-1
       ,-1
       ,'UNKNOWN'
       ,'1000-01-01'
       ,'1000-01-01'
       ,'1000-01-01')
SET IDENTITY_INSERT SHARED.AUDIT_DIM OFF    
END

--- END 'UNKOWNN'  IN AUDIT DIMESNION 

INSERT  INTO [SHARED].[AUDIT_DIM]
    (
      [JOB_ID],
      [OUTPUT_STREAM_ID],
      [OUTPUT_STREAM_DESC],
      [SELECTION_START_DATE],
      [SELECTION_END_DATE],
      [JOB_RUN_DATE]
    )
VALUES  (
      ?,  --parameters passed from package variables
      ?,  --parameters passed from package variables
      ?,  --parameters passed from package variables
      ?,  --parameters passed from package variables
      ?,  --parameters passed from package variables
      ?   --parameters passed from package variables
     )

SELECT CONVERT(INT,SCOPE_IDENTITY()) -- This is assigned back to Package variable

在过去的几个月里,这一切都运行良好,并且由于以下错误而不断失败。

信息

以用户身份执行:XXXXXXX\xxxxxxx。适用于 64 位的 Microsoft (R) SQL Server 执行包实用程序版本 10.0.2531.0 版权所有 (C) Microsoft Corp 1984-2005。版权所有。开始时间:下午 3:53:54 错误:2012-04-30 15:54:07.15 代码:0xC002F210 来源:生成 AUDIT_SK 执行 SQL 任务描述:执行查询“--START: SCRIPT TO CHECK IF THE IS ENTRY FOR 'U ...”失败并出现以下错误:“将结果提取到类型为 (DBTYPE_I2) 的变量时出错”。可能的失败原因:查询有问题,“ResultSet”属性设置不正确,参数设置不正确,或连接未正确建立。结束错误 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:下午 3:53:54 结束时间:下午 3:54:07 经过时间:13.151 秒。包执行失败。步骤失败。

如果我将包复制到不同的环境或在 SSMS 中单独运行脚本,一切正常。

有人可以指导我应该从哪里开始研究吗?

谢谢

4

0 回答 0