簡體   English   中英

SSIS查找轉換-SQL查詢不起作用

[英]SSIS Lookup Transformation - SQL query not working

我有一個SSIS包,可部署到SQL Server 2012 SSISDB中,它使用查閱轉換。 我正在使用SQL查詢的結果來執行查找比較。

在此處輸入圖片說明

這不起作用,我將所有行都顯示為“ No match”。

查詢如下:

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)

偶然地,我發現如果在查詢開始時放置一個[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)

我想念什么嗎? 為什么會這樣呢?

為什么會這樣呢?

SSIS查找組件只能考慮由諸如您的多語句查詢返回的第一個結果。

當您沒有SET NOCOUNT ON ,查詢返回的第一個結果將是消息“受影響的1行”或類似的消息。 查找組件將無法查看查詢后半部分返回的結果集。

這就是為什么將NOCOUNT設置為ON可以解決此問題的原因。 查詢的第一部分不會返回“受影響的行”消息,返回的唯一內容將是查詢的第二部分的結果集,然后由查詢組件進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM