2009-08-19 7 views
0

У меня есть пакет SSIS, который запрашивает данные из представления с помощью команды SQL.Передача параметров запроса в SSIS

SQL-команды выглядит примерно так:

SELECT from myView WHERE dateEntered >= GetDate() AND dateEntered < GetDate() + 1 

Теперь я хочу, чтобы иметь возможность указать начальную и конечную даты, например, что запрос ведет себя как:

SELECT from myView WHERE dateEntered >= startDate AND dateEntered < endDate 

Однако, если начало и даты окончания не указаны. Мне нужно использовать сегодняшнюю дату и сегодняшнюю дату + 1

Что было бы лучшим способом сделать это в пакете SSIS?

Я не могу изменить представление, так что это должно быть сделано из представления или с использованием переменных в SSIS. Я не слишком хорошо знаком с SSIS и не уверен, что есть что-то в панели инструментов, которая позволит мне обрабатывать переменную даты, а затем использовать ее в SQL Command?

ответ

0

В результате я передал параметры dtexec с помощью/SET.

Затем я использовал задачу скрипта для обработки даты, чтобы позаботиться о недействительных или других случаях.

0

Почему вы не используете проверку ISNULL для дат? Например,

SELECT * 
FROM myView 
WHERE dateEntered >= ISNULL(startDate,GETDATE()) 
    AND dateEntered < ISNULL(endDate,DATEADD(1,DAY,GETDATE())) 

Затем вы можете передать начальную и конечную даты в качестве параметров запроса из SSIS.

SELECT * 
FROM myView 
WHERE dateEntered >= ISNULL(?,GETDATE()) 
    AND dateEntered < ISNULL(?,DATEADD(1,DAY,GETDATE())) 

Эти параметры можно указать в разделе параметров задачи выполнения SQL.

Смежные вопросы