SQL Server 2005从Excel导入

我想知道什么是我最好的select是从Excel文件导入数据每周或每月的基础上。 起初,我以为我会用SSIS,但经过与看似简单的任务斗争,我开始重新思考我的计划。 只需手工编写SQL或使用SSIS包的服务,会更好还是更简单? 基本过程如下:

  1. 一个单独的进程将下载.xls文件到本地文件共享。
  2. xls文件将具有如下的文件名:'myfilename MON YY'。
  3. 我将需要从文件名读取月份和年份,将其重新格式化为sqldate,然后查询DimDate表以find相应的date键。
  4. 对于每一行(在前两个标题行之后),使用date键插入数据,除非该行是总行,则忽略。

以下是我遇到的一些SSIS问题:我可以从平面文件数据源parsingdatestring,但似乎无法使用Excel数据源。 此外,一旦parsing,我似乎无法将string转换为date,以执行date键的查找。 例如,我想要做这样的事情:

从DimDate中selectDateKey,其中ActualDate = convert(datetime,'01 – '+'JAN-10',120)

但我不认为有可能在expression式生成器中使用“convert”或“datetime”关键字。 我也一直无法find我可以编辑的SQL,忽略前两行数据。

我对使用SSIS非常怀疑,因为它似乎是一种可以更有效地完成自己编写SQL的事情,但是我可能会被迫使用SSIS。 思考?

SSIS绝对是要走的路。

打你的问题:(DT_DBTIMESTAMP)是你想要的转换。 语法有点不同。 例如,要转换您的示例date,我会使用:

(DT_DBTIMESTAMP)"01/01/2010" 

如果您在派生列中使用该expression式来replacestringdate(或创build新列),则可以对数据库中的date时间列进行查找。

如果您需要排除前两行,则需要编写一个SQL语句来查询文件(而不是Excel文件读取器源代码),或者使用条件拆分将它们丢弃,这是基于任何可以重复的条件与每一个import。

平面文件更易于使用,并允许您丢弃x个最初的行。