我需要一些反馈,说明做我想做的事情的最佳方式是什么,请允许我定位。
我有一个巨大的数据库,不断收到新的输入。现在我需要一个excel文件,它显示过去一天的所有输入列。所以我认为最好的方法是使用SSIS包。我从来没有真正使用过SSIS,所以我不太确定可能性有多大。所以目前我只能创建一个 ALL 输入的SSIS包。但是我每天都需要一个新文件,但是文件名中还有数据,因为旧文件不会被删除等等所以我需要能够创建一个带有文件名中日期的.xls文件。有一个简单的方法吗?
我还想知道是否可以自动修改此excel文件的布局,尤其是列宽,因为它们都是默认宽度,对客户来说不是很有用。
我听说也可以使用visual studio创建SSIS包,这会有所不同,还是可能性相同(请记住我是一名c#程序员)?
非常感谢
答案 0 :(得分:3)
可以通过Visual Studio创建SSIS包。在Visual Studio中单击新项目时,选择Business Intelligence Projects-> Integration Services Project。
虽然与您的情况(即Excel文件输出)不同,但在我的情况下,对于平面.TXT文件输出,我将日期作为平面文件名的一部分。为此,在我的平面文件连接管理器中,在Properties-Expressions-> Connection String(Property)中,我输入以下表达式。类似的方法也可以在你的情况下工作,特别是如果你去.csv文件输出。
"[Folder Destination]_" +
(DT_WSTR,4)YEAR(GETDATE()) +
RIGHT("0" + DT_WSTR,2)MONTH(GETDATE()),2) +
RIGHT("0" + (DT_WSTR,2)DAY(GETDATE()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("hh", GETDATE()),2) + ".TXT"
答案 1 :(得分:1)
@Kashif - 谢谢!!
你帖子中的一个小错字。 注意第3行缺少左括号:
RIGHT("0" + DT_WSTR,2)MONTH(GETDATE()),2) +
需要:
RIGHT("0" + (DT_WSTR,2)MONTH(GETDATE()),2) +
所有在一起:
"[Folder Destination]_" +
(DT_WSTR,4)YEAR(GETDATE()) +
RIGHT("0" + (DT_WSTR,2)MONTH(GETDATE()),2) +
RIGHT("0" + (DT_WSTR,2)DAY(GETDATE()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("hh", GETDATE()),2) + ".TXT"
另外,对于发现此帖子的任何人来说,只需添加一条注释,就可以将上面的“[Folder Destination] _”替换为如下路径:
"C:\\Some\\Path\\to\\File.txt"
注意双反斜杠!!