0

SSIS パッケージを実行して、日付範囲を使用して前日のテーブルからレコード数を選択する毎日の仕事があります。数分ごとに実行するように変更したいので、前回の実行クエリで使用された日時を、別の DB テーブルに格納する変数に保存する必要があります。IOを使用して保存することが提案されましたが、それが何を意味するのかわかりません。

SELECT [authorUrl],[postDate] ,[dateadded]
FROM [Feeds].[dbo].[XMLFeed]
where CONVERT(DATE, DateAdded) = DATEADD(DAY, -1, CONVERT(DATE, SYSDATETIME()))
order by dateadded desc

この選択が最後に実行されたときと同じかそれ以上の日付になるように where ステートメントを変更するにはどうすればよいですか。

4

1 に答える 1

1

最後の実行値をテーブルのどこかに保存する必要があります。まず、最後の実行パラメーターを保持するテーブルを作成します。

create table LastExecutionParameters
(
  Id int identity(1,1) not null,
  LastExecutionDate datetime
)

次に、そのように使用します:

declare @executionDate datetime = 
    (select top 1 DateAdd(Day, 1, LastExecutionDate) 
       from LastExecutionParameters 
      order by Id desc);

SELECT [authorUrl],[postDate] ,[dateadded]
FROM [Feeds].[dbo].[XMLFeed]
where CONVERT(DATE, DateAdded) = DATEADD(DAY, -1, @executionDate)
order by dateadded desc

insert into LastExecutionParameters values (@executionDate);

もちろん、dateaddニーズに合わせて呼び出しを変更してください。

于 2012-11-09T18:31:33.057 に答える