在查询SSIS中解析变量

时间:2013-01-02 08:15:32

标签: tsql ssis sql-server-2008

在SQL任务编辑器中,我有以下查询

DELETE FROM 
[TICKETS_DATA]
where BILLING_TICKETS_DATA_Time_ID < 
(SELECT TIME_ID
FROM [TIME]
WHERE (TIME_Year = ?)  AND (TIME_Month = ?)) - 1

我有TIME_ID,其中有相关的月份和年份。 我有2个变量分别为Time_Month(int32)和Time_Year(int32),分别为08和2012。

我想获取当前Time_ID并在SQL任务编辑器中传递上述查询。

目前在表格中我存储了1个月的数据,现在想存储3个月的数据。

请帮助我参与参数映射以及如何在SQL Command查询中解析变量。

1 个答案:

答案 0 :(得分:0)

只要表中的Time_id是每个记录增加1的数值,并且每年/每月组合记录一个记录,并且数字按顺序递增,每次按日期顺序增加一个(即2000 01有time_id 1和2000 02有time_id 2和2001 1有time_id 13),那么你只需将-1更改为-3即可删除表中超过三个月的记录。请记住,由于这可能是上个月运行的,因此在此更改后的第一次运行中,您将在表中有两个月的时间,它将在第一次运行中删除0条记录。下一次运行,您将有3个月,它将再次删除0条记录。在第三次运行(假设它每月只运行一次),您将有三个月的数据,它将删除该日期前4个月的记录。