【问题标题】:Export data to a text file from a SQL Server table with changing columns将数据从具有更改列的 SQL Server 表导出到文本文件
【发布时间】:2020-07-06 22:11:22
【问题描述】:

我使用从变量传入的列创建了一个数据透视表。该变量是根据另一个表中的标志设置的,因此列的名称和数量可以逐月更改。我需要能够将此枢轴导出到分隔的文本文件。数据透视表存储在临时表中##PivotTable

我曾尝试通过 SSMS 执行此操作,但我知道如何执行此操作的唯一方法是定义一个需要设置列的文件连接管理器。我也试过通过 sqlcmd,但是那个导出了额外的信息和空格。

我对几乎所有允许我每月通过 SQL 代理作业运行它的流程持开放态度。

任何帮助将不胜感激。

【问题讨论】:

    标签: sql-server ssis pivot export


    【解决方案1】:

    您可以使用 SQL Server 导入和导出向导

    右击数据库-->Tasks-->ExportData..

    映射您的##PivotTable。

    单击下一步并设置您的源数据库(为 SQL Server 选择 OLEDB 提供程序)

    为您的文件设置文件名(例如 d:\monthlyData\202006\MyFile.csv

    选择选项将数据从一个表或视图复制到多个表或视图 -- 不要使用此选项,因为您的列会发生变化。

    选择选项写一个采石场

    您可以立即运行它或保存为 SSIS 包并使用 SQL 作业重复使用它

    【讨论】:

    • 我需要能够每月自动运行导出。即使我保存了这项工作,我也会遇到与在 SSMS 中定义连接相同的问题 - 它将被定义为今天的表,并且在有其他列时不会自动更改。
    • @Islandz 您可以将您的 pviot 表转换为另一个临时表(例如 ##ExportTable)并且新表应该包含一列并且它应该有分隔的字符串数据,然后您可以直接导出该表的数据SQL 作业。 XML 输出将是获取这些类型数据的理想方式(但这不是您的要求)。
    • @Islandz try select * from ##pivottable source quarry method
    【解决方案2】:

    我认为您将不得不使用像 here 这样的动态 SQL。

    【讨论】:

    • 我已经可以使用数据透视表(包括动态获取列)。我现在正在寻找的是如何按月计划自动导出该枢轴,而无需在每次运行时更改任何内容。
    猜你喜欢
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多