【问题标题】:SSIS package how to add date/timestamp to file name each time package runSSIS包如何在每次包运行时将日期/时间戳添加到文件名
【发布时间】:2018-05-05 10:24:18
【问题描述】:

我有一个 SSIS 包,它将一个 csv 文件输出到该包将每天运行的位置。现在我查看文件是否存在,如果存在,我在创建新文件之前将其删除,以便我创建已存在的文件时不会出现任何错误 - 我要做的是创建一个新的 csv 并将日期/时间戳添加到文件名的末尾。我不确定如何实现这一目标。

【问题讨论】:

    标签: sql-server csv datetime ssis etl


    【解决方案1】:

    您可以使用以下步骤实现此目的:

    1. 添加一个变量,即User::Filename
    2. 单击变量,然后按 F4 显示属性选项卡
    3. 在表达式中使用类似于以下的表达式:

      "C:\\Filename_" + (DT_WSTR,4)YEAR(GETDATE()) + "_" + (DT_WSTR,4)MONTH(GETDATE()) + "_" + (DT_WSTR,4)DAY(GETDATE()) + ".csv"
      
    4. 在目标平面文件连接管理器中,在表达式中(在属性选项卡中找到)将此变量用作连接字符串表达式

      @[User::Filename]
      

    【讨论】:

    • 我正在学习 SSIS,这是我想要完成的事情。我到底在哪里做这些步骤?我有一个运行选择脚本的 OLE DB 源和一个从查询生成文件的平面文件目标。我假设它是在平面文件目标中的某个地方完成的,但我没有看到我实际添加变量的位置。
    • @marky 您应该添加一个包变量并将其计算为我提到的表达式。然后您应该配置平面文件连接管理器以从您创建的变量中读取“connectionstring”属性。查看以下文章:mssqltips.com/sqlservertip/1084/…
    猜你喜欢
    • 2020-06-10
    • 2023-03-31
    • 1970-01-01
    • 2011-09-02
    • 2017-12-01
    • 2011-02-05
    • 1970-01-01
    相关资源
    最近更新 更多