0

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

请帮我导出这个

exec sp_MSforeachtable 'select top 3 * from ?'

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

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

我尝试了这个使用 sp_makewebtask 的解决方案,但我知道它现在已经被贬值了。

能否请你帮忙?

非常感谢,

菲尔

PS 数据库在 MSSQL 2008 上运行

4

1 回答 1

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 代理(如果在您的 SQL Server 版本中可用)来安排它。

于 2012-07-31T17:08:47.483 回答