将Excel电子表格列导入SQL Server数据库

use*_*206 63 sql-server import excel etl sql-server-2008

我有一个Excel电子表格,我想将选择列导入我的SQL Server 2008数据库表.该向导没有提供该选项.

是否存在任何简单的代码选项?

小智 50

连接到Sql Server 2005数据库后,在"对象资源管理器"窗口中,右键单击要导入表的数据库.选择任务 - >导入数据.这是一个简单的工具,允许您将传入的数据"映射"到适当的表中.您可以保存脚本以在需要时再次运行.

  • 任务 - >导入数据在2008年的该菜单中不存在. (2认同)
  • 使用SQL Server 2008(而不是R2)I*在右键单击数据库时看到任务 - >导入数据. (2认同)

ins*_*ite 25

Microsoft提出了几种方法:

  • SQL Server数据转换服务(DTS)
  • Microsoft SQL Server 2005集成服务(SSIS)
  • SQL Server链接服务器
  • SQL Server分布式查询
  • ActiveX数据对象(ADO)和SQL Server的Microsoft OLE DB提供程序
  • ADO和Jet 4.0的Microsoft OLE DB提供程序

如果向导(DTS)不工作(我认为它应该)你可以尝试这样的东西http://www.devasp.net/net/articles/display/771.html基本上建议做类似的事情

INSERT INTO [tblTemp] ([Column1], [Column2], [Column3], [Column4])

SELECT A.[Column1], A.[Column2], A.[Column3], A.[Column4]
FROM OPENROWSET 
('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\Excel.xls;HDR=YES', 'select * from [Sheet1$]') AS A;
Run Code Online (Sandbox Code Playgroud)


Nic*_*ias 12

这可能听起来很遥远,但您可能希望使用Excel生成INSERT SQL代码,您可以将其转到查询分析器中以创建表.

如果您无法使用向导,则可以正常工作,因为excel文件不在服务器上


Sql*_*CID 7

您可以使用OPENROWSET,例如:

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
  'Excel 8.0;IMEX=1;HDR=NO;DATABASE=C:\FILE.xls', 'Select * from [Sheet1$]'
Run Code Online (Sandbox Code Playgroud)

只需确保路径是服务器上的路径,而不是本地计算机.


DCN*_*YAM 0

导入向导确实提供了该选项。您可以使用该选项编写自己的要导入数据的查询,也可以使用复制数据选项并使用“编辑映射”按钮忽略您不想导入的列。