我有一个Excel,有以下列和值(示例数据)
F_PRODUCT OLD_F_COMP_ID F_C_NUMBER NEW_F_COMP_ID
00231149 017-002-00-2 C_4457 017-002-01-X
ADRENALINE SPRAY 017-002-00-2 C_4457 017-002-01-X
我的表结构(testupdate)
Create Table Testupdate(ID INT,F_PRODUCT NVARCHAR(50),F_C_NUMBER NVARCHAR(40),F_COMP_ID NVARCHAR(100))
样本值
F_PRODUCT F_C_NUMBER F_COMP_ID
00231149 C_4457 017-002-00-2
ADRENALINE SPRAY C_4457 017-002-00-2
我想用Excel中的新“F_comp_id”更新testupdate表中的“F_comp_id”列。
例子
update TestUpdate set F_COMP_ID=excel.NEW_F_COMP_ID where TestUpdate.F_COMP_ID=excel.OLD_F_COMP_ID and
TestUpdate.F_C_NUMBER=excel.F_C_NUMBER
我试图服从命令
UPDATE TestUpdate
SET TestUpdate.F_COMP_ID= ExcelTable.NEW_F_COMP_ID
FROM TestUpdate
INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=D:\testdata.xls;',
'SELECT F_PRODUCT,OLD_F_COMP_ID, F_C_NUMBER,NEW_F_COMP_ID
FROM [Sheet1$]') AS ExcelTable
ON TestUpdate.F_PRODUCT = ExcelTable.F_PRODUCT
WHERE (TestUpdate.F_C_NUMBER = ExcelTable.F_C_NUMBER
AND TestUpdate.F_COMP_ID = testexcel.OLD_F_COMP_ID
)
eXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
RECONFIGURE
当我试图执行update语句时,得到了以下错误。我正在使用libreoffice calc for excel.how修复它或任何其他方法
更新此。因为Excel有5000多条记录,很难手工完成。
错误:
无法为链接服务器(空)创建OLE DB提供程序“microsoft.jet.ole db.4.0”的实例。