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。Microsoft (R) SQL Server Execute Package Utility Version 10.0.2531.0 for 64-bit Copyright (C) Microsoft Corp 1984-2005. 全著作権所有。開始: 3:53:54 PM エラー: 2012-04-30 15:54:07.15 コード: 0xC002F210 ソース: AUDIT_SK の生成 SQL 実行タスクの説明: クエリの実行 "--START: SCRIPT TO CHECK IF THERE IS ENTRY FOR 'U ...」は次のエラーで失敗しました:「結果をタイプ (DBTYPE_I2) の変数に抽出中にエラーが発生しました」。考えられる失敗の理由: クエリの問題、「ResultSet」プロパティが正しく設定されていない、パラメーターが正しく設定されていない、または接続が正しく確立されていない。終了エラー DTExec: パッケージの実行で DTSER_FAILURE (1) が返されました。開始: 午後 3:53:54 終了: 午後 3:54:07 経過: 13.151 秒。パッケージの実行に失敗しました。ステップは失敗しました。

パッケージを別の環境にコピーするか、SSMS でスクリプトを単独で実行すると、すべて正常に動作します。

誰かが私をどこから調べ始めるべきか教えてもらえますか?

ありがとう

4

0 に答える 0