一時テーブルを作成する SQL タスクと、その一時テーブルから選択するデータ フロー タスクがあります。すべてがうまく機能しますが、SQL タスクにパラメーターを追加すると、データ フロー タスクが失敗し、一時テーブルが作成されませんでした。パラメータ値のハードコーディングは機能します。
同じ接続オプションを保持するオプションが true で、メタデータが設定され、Int32 変数が oledb の名前が 0 と 1、サイズが -1 である限りマップされます。
私はそれをより小さなスケールで複製することに成功しました
SQL タスク
DECLARE @Yesterday DATETIME
DECLARE @Today DATETIME
DECLARE @StartDisposition INT = ?
DECLARE @EndDisposition INT = ?
SET @Yesterday = CONVERT (date, DATEADD(day, @StartDisposition, GETDATE()))
SET @Today = CONVERT (date, DATEADD(day, @EndDisposition, GETDATE()))
SELECT @StartDisposition AS A, @Yesterday AS B, @Today AS C INTO #TempT
データ フロー タスク、またはこの目的のための単なる SQL タスク
SELECT * FROM #TempT
そのため、パラメーターを使用した何かが一時テーブルの作成を台無しにしているようです。
ありがとう
クエリに文字列変数式を使用するとうまくいきました。これがどのように進んだかです。
"DECLARE @Yesterday DATETIME
DECLARE @Today DATETIME
DECLARE @StartDisposition INT = " + (DT_STR, 20, 1252)@[User::StartDisposition] + "
DECLARE @EndDisposition INT = " + (DT_STR, 20, 1252)@[User::EndDisposition] + "
SET @Yesterday = CONVERT (date, DATEADD(day, @StartDisposition, GETDATE()))
SET @Today = CONVERT (date, DATEADD(day, @EndDisposition, GETDATE()))
SELECT @StartDisposition AS A, @Yesterday AS B, @Today AS C INTO #TempT"
次に、SQL タスクで SQLSourceType を Variable に変更します。
助けてくれてありがとう。