【问题标题】:Exporting SQL Server results with multiple tables to Excel将具有多个表的 SQL Server 结果导出到 Excel
【发布时间】:2012-08-01 01:08:47
【问题描述】:

我有一个包含 69 个表的数据库。

请帮我导出这个

exec sp_MSforeachtable 'select top 3 * from ?'

该行获取每个表的前 3 条记录并在“结果”选项卡中打印它们(根据 this question)。

我想将结果导出到 .xls 文件中。

我尝试了使用 sp_makewebtask 的this solution,但我知道它现在已经被贬值了。

你能帮忙吗?

非常感谢,

菲尔

附:数据库在 MSSQL 2008 上运行

【问题讨论】:

    标签: sql-server-2008 export-to-excel


    【解决方案1】:

    首先,您可能需要在查询中添加ORDER BY:没有它,您将从每个表中获得三个随机行,这可能是您想要的,也可能不是。

    接下来,这是一次性任务还是您会定期执行的任务?如果它是一次性任务,则动态生成查询脚本,手动运行它并自己复制和粘贴结果。这可能会让您了解如何生成脚本:

    select 'select top 3 * from ' + quotename(name) + ' order by SomeColumn union all '
    from sys.tables
    where... -- add something here if necessary
    

    如果您需要定期执行此操作,我会避免使用 TSQL,因为它是一种用于处理数据库外部文件的非常糟糕的语言。相反,编写一个小脚本来连接数据库、获取数据并写入输出文件通常更容易。您可以使用对您来说最方便的任何脚本或编程语言,然后使用 SQL 代理(如果您的 SQL Server 版本可用)来安排它。

    【讨论】:

    • 您好 Pondlife,感谢您的回复。是的,随机的很好。这是一项一次性任务。我帖子中的脚本只是完成了这项工作,但问题是我不知道如何将结果导出到 Excel 文件中。一句话:我需要 1)从 69 个表中随机选择 3 条记录,2)保存到 Excel 文件中。 1)已经实现了,但我做不到 2)。谢谢
    • 如果它是一次性任务,那么正如我所提到的,您可以手动将结果从 SSMS 复制并粘贴到 Excel 中。如果所有 69 个表都具有相同的结构,那么我建议的查询将允许您获取一个结果集中的所有行,因此您只需复制和粘贴一次,而不是 69 次。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    相关资源
    最近更新 更多