客户端数据到SQL服务器

时间:2014-02-11 15:28:05

标签: sql-server excel import

我的客户在Excel中提供的数据如下所示:

 |  Sno    | Product Name | Product Type  | Supplier
 --------------------------------------------------- 
 | 1       | Mobile       | Gadgets       | Steve
 | 2       | DataCard     | Internet      | Hauwai

(更多列和行)

我为产品,类型和供应商等设计了一个单独的表,现在我需要将数据导入SQL Server。我需要在Excel表格中将ID和供应商名称替换为ID的产品类型。我怎样才能做到这一点? Excel工作表包含更多列和行。例如,它有超过1000种产品类型。

2 个答案:

答案 0 :(得分:0)

我想到的一个解决方案是:

1)创建SSIS包,例如:       来源(将是excel)>目的地将是另一个表名称Producttype,Product,Supplier等。

Create table ProductType(
        ProductTypeID int identity(1,1),
        ProductType varchar(255)
        )


        Create table Product(
        ProductID int  identity(1,1),
        ProductName varchar(255)
        )


        Create table Supplier(
        SupplierID int  identity(1,1),
        SupplierName varchar(255)
        )

2)您可以在包含源Excel的简单包和使用SQL Server表的目标中执行此操作。

修改

将数据转储到目标表时,您只需要担心来自Excel源的实际字段。 ID是身份字段,需要小心。

答案 1 :(得分:0)

如果这是一次性过程,请使用ACE

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;HDR=YES;Database=C:\path\to\file.xls','SELECT * FROM [Sheet1$]')

另一种方法是在Excel中打开xls并导出到csv。然后使用BULK INSERT