sql-server-2008 - 如何根据查询结果在 SQL 中写入多个文件?

标签 sql-server-2008 t-sql

我有一个 1m+ 记录的数据集。 我需要根据 order by 将查询输出到多个文件。

示例数据集:

ID        StoreName      StoreChain   MoreData........
 1        walmart NY     Walmart      ...
 2        Walmarty NJ    Walmart      ....
 3        Target NY      Target       ....
 4        Costco NY      Costco       ....

示例查询

 Select StoreName, SotreChain,moreData order by StoreName

我需要为每个商店名称编写。 (4 个文件)

Select StoreName, StoreChain,moreData order by StoreChain

我需要为每个链编写一个文件,(3个文件)

今天我使用 CLR SP,它工作正常,但有点慢(1 小时处理 1000 个文件,每个文件 200-400 行)

我想知道是否有一个纯T-SQL解决方案,如果需要可以使用命令shell。

并且每次创建文件时都必须写入日志表。

最佳答案

我相信最好的解决方案是使用 SQL Server Integration Services (SSIS) 包。您可以使用 Business Intelligence Development Studio (BIDS) 进行设计。

使用此功能,您可以将 T-SQL 指定为源,并将平面文件指定为查询的目标。

您甚至可以安排 SSIS 包定期运行。

关于sql-server-2008 - 如何根据查询结果在 SQL 中写入多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8668538/

相关文章:

sql-server - 在 SQL Server 中使用多个表删除一张表中的数据

sql - 如何创建仅获取表中已更新数据的查询

sql - 合并与更新插入

sql - 使用 MDX 期间的最后一个非空子项

sql-server-2008 - DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) 有人能解释一下吗

sql-server - 在 T-SQL 中查询之前将字符串转换为 XML 数据类型

sql-server-2008 - SQL 2008 无法终止进程

SQL Group by 和 concat

sql - 尝试在 T-sql 中调用存储过程时, '=' 附近的语法不正确

sql - 使用一个 int 列表进行多次插入