从Excel或CSV文件导入

时间:2011-04-10 13:43:05

标签: sql sql-server-2008

我需要将数据导入sql表,按列A查找行,并将列B和C放入行中的特定数据列。

我的excel / CSV文件类似于:

Code,Unit,Price
1234,Pack10,1.20
4567,Each,3.40

我的表类似于

ItemID Code Name ItemPrice Unit Supplier LastCost SellBy QtyStock Inactive

我需要从电子表格中的行更新表格,找到代码行并替换Unit和ItemPrice列。

我尝试过使用标准导入数据,但无法查看如何查找代码,然后插入必填字段。

任何帮助或指向我能找到答案的地方都将非常感激。

2 个答案:

答案 0 :(得分:0)

将问题分解为两个较小的步骤...首先,只执行标准导入数据,并将excel文件的内容放入SQL表中。导入数据后,只执行标准SQL更新语句,将导入的表和现有表连接在一起,以更新现有表。

UPDATE e
SET
    Unit = i.Unit,
    ItemPrice = i.Price
FROM
    ExistingTable e JOIN
    ImportedTable i ON i.Code = e.Code

答案 1 :(得分:0)

要一步完成,您可以使用OPENROWSET,如下所示:

UPDATE A
   SET [ItemPrice] = B.Price,
       [Unit] = b.Unit
FROM   [SO].[dbo].[PricesTbl] A INNER JOIN
       OPENROWSET('Microsoft.Jet.OLEDB.4.0',
       'Excel 8.0;Database=C:\Prices.xls', 'SELECT * FROM [Sheet1$]') B ON A.CODE=B.CODE