【网学网提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了EXCEL表格导入到SQL数据库(附导入重复数据方法)的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
EXCEL表格导入到SQL数据库
经常有大量数据导入到数据库的需求,提供一个简单的用SQL语句导入的办法。核心语句:SELECT*FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:\Finance\account.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')...xactionsDataSource就是excel文件的路径,这个简单;UserId、Password和Extendedproperties这三个属性为“UserID=Admin;Password=;Extendedproperties=Excel5.0”最后那个。“xactions”就是excel文件里所选的工作表名,注意默认的Sheet1要写成[Sheet1$]。例如:数据库里建好一个表testTable_1,5个字段id,name,date,money,content,盘下book1.xls有C文件的sheet1工作表里写好对应的数据并设好数据类型,执行如下插入语句即可:insertintotestTable_1([name],[date],[money],[content])Select[],[日期],[金额],[内容]FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="C:\Book1.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')...[Sheet1$]另:由于,Server2005为了安全性,SQL安装完以后,将很多组件的默认状态设置为不启用。如果需要用到这些特性,可以由管理员手工启用。为此,SQLServer2005还提供了一个专门的管理工具:SQLServerSurfaceAreaConfiguration要解决本文的问题,也就是要启用ADHocDistributedQueries特性,执行SurfaceAreaConfiguration,选择SurfaceAreaConfigurationforfeatures在弹出的窗口中选择DatabaseEngine->AdHocRemoteQueries,然后勾选"EnableOPENROWSETandOPENDATASOURCEsupport",确认即可。如果导入的EXCEL里和表里已经有的规定唯一的键有重复的内容时候,可以分别执行下面的语句保留原有的内容。1.首先建立一个和目标表(User)完全一样的临时表(temp)select*intotempfrom[User]where1=22.用上述方法将数据先导入到临时表里INSERTINTOtemp(UserName,AccountID)SELECTa,bFROMOPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','DataSource="C:\import.xls";
UserID=Admin;Password=;Extendedproperties=Excel5.0')...[Sheet1$]ASderivedtbl_13.使用SQL语句使得找出不重复的表插入到目标表里INSERTINTOUserSELECT*FROMtempWHERE(NOTEXISTS(SELECTAccountIDFROMUserWHERE(AccountID=temp.AccountID)))