数据stream任务与可变的来源

在一个SSIS包中,我需要将两个SQL查询的内容放在两个Excel文件中。 2个查询的结果是2个对象variables,我想知道是否可以使用数据stream任务。 问题:

  1. 我不知道我将有什么列(列的数量,列的名称),查询是在执行时创buildSet @qry = 'Select ...' EXEC(@qry)
  2. 我有与Excel文件相同的问题,我不能有一个精确的模板,我所知道的Excel文件是,我们将有2张。 这可能吗? 如果没有,是否有另一种方式(脚本任务,SSRS …)?

作为一个普遍的答案,不,你不能用SSIS做到这一点。 但是,由于您使用C#标记了此标记,因此可以使用OLE将工作表添加到Excel文件,并将数据添加到这些工作表中, http://jayadevjyothi.blogspot.com/2013/01/step-1-create-new-project。 HTML 。 这可以在SSIS以外完成,或者如果您的解决scheme需要在SSIS内运行,则可以将C#放在脚本任务中。

  // Excel file path string excelFilePath = @"F:\Excel File.xlsx"; // Connection string for accessing excel file string connectionString = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source={0}; Extended Properties=""Excel 12.0 Xml;HDR=YES""", excelFilePath); using (OleDbConnection Connection = new OleDbConnection(connectionString)) { try { Connection.Open(); using (OleDbCommand Command = new OleDbCommand()) { Command.Connection = Connection; Command.CommandText = "CREATE TABLE [Students] ([First Name] Char(200), [Last Name] Char(200), [Age] Char(2))"; Command.ExecuteNonQuery(); Console.WriteLine("Table Created Successfully"); } Console.ReadLine(); } catch (OleDbException ex) { Console.WriteLine("Message: " + ex.Message); Console.ReadLine(); } finally { Connection.Close(); } }