excel - SSIS 动态 Excel 目标文件名作为表名
问题描述
我收到一个包含以下信息的 excel 文件:
SQL SERVER SCHEMA TABLENAME
AdventureWorksDW Dbo DimOrganization
AdventureWorksDW Dbo ...
... ... ...
我想使用 SSIS 将上述 TABLENAME 中的所有列信息从 SQL Server 导出到 excel 表中。excel 文件名应该是上面的 TABLENAME。一张 Excel 表格的一个 TABLENAME,因此包应该是动态的。
输出:DimOrganization.xlsx(上面的 TABLENAME 等)
Number Name Type Required Source
1 OrganizationKey int N AdventureWorksDW.dbo.DimOrganization
2 ParentOrganizationKey int Y AdventureWorksDW.dbo.DimOrganization
3 PercentageOfOwnership nvarchar(16) Y AdventureWorksDW.dbo.DimOrganization
4 OrganizationName nvarchar(50) Y AdventureWorksDW.dbo.DimOrganization
5 CurrencyKey int Y AdventureWorksDW.dbo.DimOrganization
为了从 SQL 中获取上面的列信息,我的 SQL 任务将是:
SELECT
ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) [Number],
COLUMN_NAME Name,
DATA_TYPE +
CASE
WHEN CHARACTER_MAXIMUM_LENGTH IS NULL THEN ''
ELSE '(' + CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR) +')'
END Type,
CASE IS_NULLABLE
WHEN 'NO' THEN 'N'
ELSE 'Y'
END AS Required,
IC.TABLE_CATALOG+'.'+IC.TABLE_SCHEMA+'.'+Ic.TABLE_NAME [Source]
FROM AdventureWorksDW.INFORMATION_SCHEMA.COLUMNS IC
WHERE TABLE_NAME = 'DimOrganization'
我应该在 SSIS 中做什么来为上面的每个 TABLENAME 创建每个 excel 文件而不使用脚本?
我相信我需要添加变量和参数来分配 WHERE TABLE_NAME = ? 这样,如果我更改 TABLE_NAME 变量并运行它,如果有效,它将从 SQL 中检索信息,将元数据信息输入到 excel 文件中并将 excel 保存为文件名?任何想法?