如何从SSIS中的源表中仅提取最近的数据?

时间:2015-10-15 17:48:47

标签: ssis ssis-2012

我有一个修改日期栏'在源表中,我需要提取最近的数据

近期数据 - 最近执行SSIS包至日期(当前执行日期)之间的日期数据。

如何在SSIS中实现这一目标?

1 个答案:

答案 0 :(得分:1)

您可以通过使用SQL任务从msdb数据库中的作业历史记录中获取最后一个执行日期并将其存储在变量中来实现。

您可以使用此查询

USE msdb
GO

DECLARE @JobName AS varchar(50)
--Put the name of the job that runs package
SET @JobName = 'UpdateFactura'

SELECT
  MAX(DBO.AGENT_DATETIME(RUN_DATE, RUN_TIME)) AS [Last Time Job Ran On]
FROM dbo.SYSJOBS SJ
LEFT OUTER JOIN dbo.SYSJOBHISTORY JH
  ON SJ.job_id = JH.job_id
WHERE JH.step_id = 0
AND jh.run_status = 1
AND Sj.name = @JobName
GROUP BY SJ.name,
         JH.run_status
ORDER BY [Last Time Job Ran On] DESC
GO

在SQL任务集中设置单个结果并将结果映射到变量。现在,您可以使用该变量从上次包执行中检索已修改的数据。

如果这有用,请告诉我。