2013-04-03 2 views
0

Мне нужно сгенерировать файл с последним днем ​​месяца, используя SSIS. Я получаю его с помощью SQL.динамически генерировать файл с последним днем ​​предыдущего месяца в ssis

DECLARE @mydate DATETIME 
SELECT @mydate = '03/21/2013' 
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)),@mydate),112) 
--20130228 

Я не знаю, как передать его в выражении SSIS в диспетчере соединений.
Имя файла будет как 'ABC_20130228.txt'

ответ

0

Я хотел бы назначить дату к переменной в SSIS, а затем передать эту переменную в задачу сценария, который строит имя файла и помещает, что в выходной переменной. Затем вы можете назначить выходную переменную в свойстве ConnectionString в группе свойств Expressions в свойствах диспетчера подключений для этого выходного файла, чтобы использовать значение переменной в качестве имени вашего файла.

Суммировать:

  1. Используйте задачу сценария и передать дату для использования в имени файла к нему, как только для чтения переменной как тип строки, чтобы сделать его легче манипулировать.
  2. Назначьте переменную чтения/записи заданию сценария, чтобы сохранить имя файла.
  3. Создайте имя файла в задаче сценария.
    Переменные с именем: User :: DataFile, User :: MaxDate ie String DataFileName; Строка DateToUse;

    DateToUse = (String) Dts.Variables ["MaxDate"]. Значение; DataFileName = "ABC _" + Convert.ToString ((Convert.ToDateTime (DateToUse)). Year) + Convert.ToString ((Convert.ToDateTime (DateToUse)). Month) + Convert.ToString ((Convert.ToDateTime (DateToUse)) · сутки) + "TXT."; Dts.Variables ["DataFile"]. Value = DataFileName;

  4. Назначьте переменную в разделах Выражения свойств для диспетчера подключений в свойстве CONNECTIONSTRING.

Это должно быть сделано. Если вам нужен конкретный путь, то это будет объединено со свойством и переменной на этапе 4.

+0

Вы могли бы сделать это таким образом. Я просто использовал этот код, потому что мне пришлось создавать несколько имен файлов по другим причинам, и мне пришлось делать некоторые другие манипуляции. Я извлек часть именования из этой процедуры. – David