将具有多个表的SQL Server结果导出到Excel

时间:2012-07-31 14:46:49

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

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

请帮我导出

exec sp_MSforeachtable 'select top 3 * from ?'

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

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

我尝试使用sp_makewebtask的this solution,但我知道现在已经折旧了。

你能帮忙吗?

非常感谢,

菲尔

P.S。数据库在MSSQL 2008上运行

1 个答案:

答案 0 :(得分:0)

首先,您可能需要在查询中添加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 Agent(如果在您的SQL Server版本中可用)安排它。