[英]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.