小编Ste*_*nie的帖子

如何将数据从 SQL 表导出到 SSIS 中的多个 Excel 文件?

我创建了一个 SSIS 包,它从 SQL 中提取数据并将其加载到 excel 中。我在使这个包动态并将数据加载到多个 excel 文件中时遇到问题。

我首先创建了一个执行 SQL 任务,该任务保存所有带有 SQL 代码的文件名:SELECT FileName FROM Files并且其结果集将存储在一个变量中FileNameObj。然后我创建了一个 Foreach 循环容器并在里面添加了一个数据流任务。

Foreach Loop Container 设置: Foreach ADO Enumerator,ADO Object 源变量 - FileNameObj,变量映射 -FileName和索引 - 0。在数据流任务下,我添加了一个 OLE DB Source 和 Excel Destination 指向文件路径:C:\Test\ABC.xlsx

这是连接管理器属性:

连接字符串Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Test\ABC.xlsx;Extended Properties="Excel 12.0;HDR=YES";

延迟验证设置为True

ExcelFilePathC:\Test\ABC.xlsx

然后我用 PropertyExcelFilePath和 Expression创建了一个表达式:"C:\\Test\\"+ @[User::FileName]+".xlsx" 然后我的ConnectionString更改为:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Test\.xlsx;Extended Properties="Excel 12.0;HDR=YES";

我已经在 test 文件夹中创建了所有文件模板(所有文件模板相同)。我收到以下错误:

数据流任务 …

sql-server excel expression ssis etl

5
推荐指数
1
解决办法
2786
查看次数

将列拆分成行的最佳方法?

将列拆分成行的最佳方法是什么(如矩阵?)示例表:

Name Hours1 Hours2 Hours3
Jon  32     40     30
Ana  40     0      40
Run Code Online (Sandbox Code Playgroud)

结果(不显示0值):

Name Hours
Jon  32
Jon  40
Jon  30
Ana  40
Ana  40
Run Code Online (Sandbox Code Playgroud)

我能想到这样做的一种方法是使用 Union

SELECT
  Name,
  Hours1
FROM #HOURSTABLE
WHERE Hours1 <> 0

UNION ALL

SELECT
  Name,
  Hours2
FROM #HOURSTABLE
WHERE Hours2 <> 0

UNION ALL

SELECT
  Name,
  Hours3
FROM #HOURSTABLE
WHERE Hours3 <> 0
Run Code Online (Sandbox Code Playgroud)

还有其他建议吗?

sql sql-server matrix

2
推荐指数
1
解决办法
104
查看次数

添加ssrs报告描述

无论如何,我可以添加一个在执行前显示在报告中的 ssrs 报告描述吗?我用谷歌搜索,大多数人说这是不可能的,但必须有一种方法来调整它,对吗?

sql-server reporting-services ssrs-2008 ssrs-2008-r2

1
推荐指数
1
解决办法
8618
查看次数