从Excel或CSV文件导入
问题描述:
我需要将数据导入到一个sql表中,在列A中查找行,并将列B和C放入行中,并将其放入特定数据列中。从Excel或CSV文件导入
我的Excel/CSV文件类似于:
Code,Unit,Price
1234,Pack10,1.20
4567,Each,3.40
我的表类似于
ItemID Code Name ItemPrice Unit Supplier LastCost SellBy QtyStock Inactive
我需要更新在电子表格中的行表中发现的代码行和更换单位和ItemPrice列。
我曾尝试使用标准导入数据,但无法看到如何查找代码,然后插入必填字段。
任何帮助或指向我在哪里我可以找到答案将不胜感激。
答
将问题分解为两个较小的步骤...首先,只执行标准导入数据,并将excel文件的内容放入SQL表中。导入数据后,只需执行标准的SQL更新语句即可将导入的表和现有的表联合在一起,以更新现有的表。
UPDATE e
SET
Unit = i.Unit,
ItemPrice = i.Price
FROM
ExistingTable e JOIN
ImportedTable i ON i.Code = e.Code
答
,使其在一个单一的步骤中,您可以使用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
SQL的什么味道? – 2011-04-10 13:45:00
Sql 2008标准 – RonL 2011-04-10 13:47:43
在Windows中,您可以创建一个ODBC数据源并查询Excel表格,就好像它是数据库中的表格一样。如果您在SQL Sever中创建链接的数据源,则可以使用结果作为插入到select的源。 – 2011-04-10 13:47:53