SQL Server 2012 SSISDBに展開するためのSSISパッケージがあり、ルックアップ変換が使用されています。私は、ルックアップ比較を実行するためにSQLクエリからの結果を使用しています。SSISルックアップ変換 - SQLクエリが機能しない
これは動作しませんし、私は「いいえマッチした」として、すべての行を取得します。
クエリは以下の通りです:偶然
DECLARE @LastJobDate DATETIME
SELECT @LastJobDate = COALESCE(MIN(S.LastImportDate), DATEADD(DAY, -2, GETDATE()))
FROM Stations S INNER JOIN
Lines L ON S.ID_Line = L.ID_Line
WHERE L.Name LIKE 'lineType%' AND S.ImportData = 1 AND S.Active = 1
SELECT J.ID_Line, J.ID_Job, J.SerialNumber
FROM [Jobs] J INNER JOIN
[Lines] L ON J.ID_Line = L.ID_Line
WHERE L.Name LIKE 'lineType%'AND J.TimeStamp >= DATEADD(HOUR, -1, @LastJobDate)
、私は、クエリのbegginingで[SET NOCOUNT ON]
を置いた場合、それが動作することがわかりました。
DECLARE @LastJobDate DATETIME
SET NOCOUNT ON
SELECT @LastJobDate = COALESCE(MIN(S.LastImportDate), DATEADD(DAY, -2, GETDATE()))
FROM Stations S INNER JOIN
Lines L ON S.ID_Line = L.ID_Line
WHERE L.Name LIKE 'lineType%' AND S.ImportData = 1 AND S.Active = 1
SELECT J.ID_Line, J.ID_Job, J.SerialNumber
FROM [Jobs] J INNER JOIN
[Lines] L ON J.ID_Line = L.ID_Line
WHERE L.Name LIKE 'lineType%'AND J.TimeStamp >= DATEADD(HOUR, -1, @LastJobDate)
私に何か不足していますか?なぜこの動作?
「SET NOCOUNT ON」の動作は次のとおりです。http://stackoverflow.com/questions/1483732/set-nocount-on-usageこれまでにクエリがクエリカウントを送信していた可能性があります。したがって、Lookupが破損している可能性があります。 – Nebi
@Nebi実際、ルックアップ変換に関する問題を検索するのではなく、SET NOCOUN ONが実際に行うことについて、より注意深く読んでいます。 – nunopacheco
「ブロック」変換が何であるかを調べることもお勧めします。 'aggregate'変換がすべての行が持ち込まれるまで進まない場合、パフォーマンスに悪影響を及ぼす可能性があります。コントロールフローで 'Execute SQL'タスクを使用すると、ほとんどの種類の集計を調整やログの目的に合わせて効率的に行うことができます。 – iamdave