シナリオでエラーの原因を特定できません。質問に基づいてシナリオを再現しようとしました。この例は、あなたの側で何が違うのかを理解するのに役立つかもしれません.
dbo.Errorという名前の単純なテーブルを作成します
CREATE TABLE [dbo].[Error](
[Id] [int] NOT NULL,
[SPName] [varchar](20) NOT NULL
) ON [PRIMARY]
GO
以下のスクリプトを使用して、いくつかのサンプル データをテーブルに入力します。
INSERT INTO dbo.Error (Id, SPName) VALUES
(1000, 'export/INSERT'),
(1000, 'export/DELETE'),
(1001, 'export/INSERT');
GO
SSIS パッケージで、上記のテーブルがホストされているデータベースに接続するための接続マネージャーまたはデータ ソースを作成します。この例では、OLE DB 接続マネージャーを作成しました。これは、SQL Server データベースの推奨プロバイダーであり、接続マネージャーに Practice という名前を付けたためです。
パッケージに次の変数を作成します。

変数Id
の値を 1000 に設定して、SQL 実行タスクで実行するクエリが少なくとも 2 行をフェッチするようにします。
変数SQLExportError
を次のクエリに設定します。
SELECT COUNT(Id) AS ErrorTableCount FROM dbo.Error WHERE SPName in ('export/INSERT','export/DELETE') AND Id =
変数SQLFetch
を選択し、F4 を押してプロパティを表示します。プロパティEvaluateAsExpressionをTrueに設定します。Expressionプロパティに対して省略記号ボタンをクリックし、次の式を設定します。
@[User::SQLExportError] + (DT_WSTR,30)@[User::Id]

[SQL 実行タスク] を [制御フロー] タブにドラッグ アンド ドロップします。以下に示すように、SQL 実行タスクの [一般] ページを構成して、式変数に格納された SQL クエリを実行します。

クエリによって返された値を受け入れて変数に格納するように [結果セット] ページを構成します。

スクリプト タスクを追加して、変数に格納されている値を表示します。変数を読み取るようにスクリプト タスクを構成するErrorTableCount

次の C# コードをスクリプト タスクに追加します。
public void Main()
{
MessageBox.Show(String.Format("Value in variable ErrorTableCount: {0}",
Dts.Variables["User::ErrorTableCount"].Value),
"Execute SQL Task - Single Row");
Dts.TaskResult = (int)ScriptResults.Success;
} =

スクリプト タスク エディターを閉じます。制御フローは次のようになります。

パッケージを実行すると、メッセージ ボックスにカウント2が表示されます。これは、値 1000 に設定された Id を持つサンプル データ内の行数であるためです。
構成の問題点を見つけるのに役立つことを願っています。
