> 結果を返す必要があるときに >= 結果を返す SSIS データ フローの条件付き分割変換があります。
最初から...私のSSISパッケージは、パッケージスコープを持つDateTime型の変数User::max_dateに1つのテーブルからmax(date)を格納するSQLタスクを実行します。
次に、パッケージは、条件付きの分割変換を含むデータ フロー タスクの実行に進みますdate > @[User::max_date]
。結果セットは常に User::max_date に等しい DateTime 値を持つ単一の行です。つまり、max(date) より新しい日付を持つ行が追加されていない場合、max(date) を含む行を返します。これは予期しない動作です。
さらに、条件付き分割からの他の出力は正しくありません。期待どおりのdate < @[User::max_date]
すべての行ではなく、すべての行です。date <= @[User::max_date]
なぜこうなった?
アップデート:
これがどのように起こっているかはわかりましたが、理由はわかりません。 User::max_date
は DateTime を格納しておりdate
、データ フロー タスクの値はDT_DBTIMESTAMP
. それらを a と比較すると、DATEDIFF(..)
ミリ秒以上の差しかありません。
だから私は問題を回避することができますが、なぜこれがこのように実装されるのか分かりません。
コメント?