SQL Server 2005从Excel导入
我想知道我最好的选择是每周或每月从excel文件导入数据。起初,我以为我会使用SSIS,但在经历了许多看似简单的任务后,我开始重新思考我的计划。手工编写SQL或使用SSIS包的服务会更好/更容易吗?基本流程如下:SQL Server 2005从Excel导入,sql,sql-server-2005,excel,ssis,Sql,Sql Server 2005,Excel,Ssis,我想知道我最好的选择是每周或每月从excel文件导入数据。起初,我以为我会使用SSIS,但在经历了许多看似简单的任务后,我开始重新思考我的计划。手工编写SQL或使用SSIS包的服务会更好/更容易吗?基本流程如下: 另一个进程将把.xls文件下载到本地文件共享 xls文件的文件名类似于:“myfilename MON YY” 我需要从文件名中读取月份和年份,将其重新格式化为sql日期,然后查询DimDate表以查找相应的日期键 对于每一行(前两个标题行之后),插入带有日期键的数据,除非该行是总计行
我非常怀疑使用SSIS,因为它似乎是一种笨拙的方法,可以通过自己编写SQL来更有效地完成某些事情,但我可能被迫使用SSIS。想法?SSIS无疑是一个方向 为了解决您的问题:(DT_DBTIMESTAMP)是您想要的转换。语法有点不同。例如,要转换您的示例日期,我将使用:
(DT_DBTIMESTAMP)"01/01/2010"
如果在派生列中使用该表达式替换字符串日期(或创建新列),则可以在DB中对日期时间列进行查找
如果需要排除前两行,则需要编写SQL语句来查询文件(与excel文件读取器源相反),或者根据每次导入时可以重复的任何条件,使用条件拆分将它们丢弃
平面文件更易于使用,并且允许您丢弃x个初始行。SSIS无疑是一个方向 为了解决您的问题:(DT_DBTIMESTAMP)是您想要的转换。语法有点不同。例如,要转换您的示例日期,我将使用:
(DT_DBTIMESTAMP)"01/01/2010"
如果在派生列中使用该表达式替换字符串日期(或创建新列),则可以在DB中对日期时间列进行查找
如果需要排除前两行,则需要编写SQL语句来查询文件(与excel文件读取器源相反),或者根据每次导入时可以重复的任何条件,使用条件拆分将它们丢弃
平面文件更易于使用,并且允许您丢弃x个初始行。我同意Kenneth的观点-SSIS是使用的工具。关于日期格式的一点意见——我将使用YYYY-MM-DD——它是ISO/SQL明确的格式。我同意Kenneth的观点——SSIS是使用的工具。关于日期格式的一条评论——我将使用YYYY-MM-DD——它是ISO/SQL明确的格式。