我的客户在Excel中提供的数据如下所示:
| Sno | Product Name | Product Type | Supplier
---------------------------------------------------
| 1 | Mobile | Gadgets | Steve
| 2 | DataCard | Internet | Hauwai
(更多列和行)
我为产品,类型和供应商等设计了一个单独的表,现在我需要将数据导入SQL Server。我需要在Excel表格中将ID
和供应商名称替换为ID
的产品类型。我怎样才能做到这一点? Excel工作表包含更多列和行。例如,它有超过1000种产品类型。
答案 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