回答
导入向导确实提供了该选项。您可以使用该选项为要导入的数据编写自己的查询,也可以使用复制数据选项并使用“编辑映射”按钮忽略不想导入的列。
Microsoft suggest几种方法:
- SQL Server数据转换服务(DTS)
- 的Microsoft SQL Server 2005集成服务(SSIS)
- SQL Server链接服务器
- SQL Server分布式查询
- 用于SQL Server的ActiveX数据对象(ADO)和Microsoft OLE DB提供程序
- ADO和Microsoft OLE DB提供程序为Jet 4.0
如果向导(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;
你可以使用OPENROWSET,像:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;IMEX=1;HDR=NO;DATABASE=C:\FILE.xls', 'Select * from [Sheet1$]'
只要确保日e路径是服务器上的路径,而不是本地机器。
通过'the wiz'我假设你在谈论'SQL Server导入和导出向导'。 (我也很新,所以我不明白大多数问题,更不用说大多数答案,但我认为我得到了这个答案)。如果是这样,你不能拿电子表格或其副本,删除你不想导入的列,然后使用向导?
我一直发现有能力做我需要的东西,我只在SQL Server 2000上(不知道其他版本有什么不同)。
编辑:其实我现在正在看它,我似乎能够选择哪些列我想映射到现有表中的哪些行。在“选择源表格和视图”屏幕上,我查看我正在使用的数据表,选择“目的地”,然后单击“编辑...”按钮。从那里你可以选择Excel列和表列来映射它。
这可能听起来像很漫长,但你可能想看看使用Excel to generate INSERT SQL代码,你可以通过查询分析器创建你的表。
运作良好,如果你不能使用向导,因为Excel文件是不是在服务器上
Microsoft Access是另一种选择。您可以在本地机器上安装Access数据库,将Excel电子表格导入(向导可用)和link to the the SQL Server database tables via ODBC。
然后,您可以设计一个访问查询,将Excel电子表格中的数据附加到SQL Server表中。
连接到Sql Server 2005数据库后,从对象资源管理器窗口右键单击要将表导入到的数据库。选择任务 - >导入数据。 这是一个简单的工具,可以将输入数据“映射”到适当的表格中。 您可以保存脚本以在需要时再次运行。
的Excel + SQLCMD +的Perl = exceltomssqlinsert
,您可以使用您的Excel作为头端以MSSQL数据库...注意将truncate table在每个生成的SQL INSERT文件的开头...
go
sp_configure 'show advanced options',1
reconfigure with override
go
sp_configure 'Ad Hoc Distributed Queries',1
reconfigure with override
go
SELECT * into temptable
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\Documents and Settings\abhisharma\Desktop\exl\ImportExcel2SQLServer\ImportExcel2SQLServer\example.xls;IMEX=1',
'SELECT * FROM [Sheet1$]')
select * from temptable
另一种选择是在Excel中使用VBA,并编写一个宏来解析电子表格数据并将其写入SQL。
一个例子是在这里:http://www.ozgrid.com/forum/showthread.php?t=26621&page=1
Sub InsertARecord()
Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim stCon As String, stSQL As String
Set cnt = New ADODB.Connection
Set rst = New ADODB.Recordset
stCon = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=JOEY"
cnt.ConnectionString = stCon
stSQL = "INSERT INTO MyTable (Price)"
stSQL = stSQL & "VALUES (500)"
cnt.Open
rst.Open stSQL, cnt, adOpenStatic, adLockReadOnly, adCmdText
If CBool(rst.State And adStateOpen) = True Then rst.Close
Set rst = Nothing
If CBool(cnt.State And adStateOpen) = True Then cnt.Close
Set cnt = Nothing
End Sub
我用过的最好的工具是http://tools.perceptus.ca/text-wiz.php?ops=7你有没有尝试一下?
如果您想使用桌面界面的可视化工具,包括验证..你可能会喜欢这个Excel工具。您也可以使用该工具创建多用户数据编辑任务,甚至数据粘贴到任何来源的SQL服务器..
如何验证和导入Excel电子表格到SQL Server数据库:
首先,尝试导入向导的32位版本。这显示了更多支持的导入格式。
背景: 所有这些都取决于您的Office(Runtimes Engines)安装。
如果您没有安装Office 2007或更高版本,导入向导(32位)仅允许您导入Excel 97-2003(.xls)文件。
如果您安装了Office 2010和geater(也包含64位,不推荐),导入向导还支持Excel 2007+(.xlsx)文件。
为了得到一个概述在运行时看到'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine
- 1. 如何将Excel电子表格导入SQL Server 2008R2数据库?
- 2. SQL导入Excel电子表格
- 3. 将Excel电子表格导入sql中作为表格错误
- 4. 如何将Excel电子表格导入SQL Server?
- 5. 导入Excel电子表格导入MS Access数据库
- 6. 使用VB.Net将Excel电子表格导入到MySQL数据库
- 7. 将Excel电子表格导入PostgreSQL
- 8. 将Excel电子表格导入Access
- 9. 从SQL Server和另一个Excel电子表格导入数据到Excel电子表格
- 10. 将Excel电子表格导入到phpMyAdmin
- 11. 从Excel电子表格中导入位类型到SQL Server中
- 12. 使用SSIS的SQL Server和Excel电子表格数据导入问题
- 13. 如何从电子表格导入数据到SQL Server?
- 14. 将Excel电子表格数据导入到现有Access数据库
- 15. MVC2:SQL Server表 - > Excel电子表格
- 16. 加入Excel电子表格到SQL数据库
- 17. 将Postgres数据库导出到Excel电子表格
- 18. 如何将Excel电子表格中的数据导入ORACLE APEX?
- 19. 将Excel数据导入到SQL Server
- 20. 以数组格式将Excel电子表格导入C#表单?
- 21. 从Excel导入数据到SQL Server表
- 22. 从Excel工作表导入数据到SQL Server数据库
- 23. 上传Excel表和数据导入到SQL Server数据库
- 24. 将SWT表格数据导出到Excel电子表格
- 25. 如何将excel表格导入到asp.net中的sql数据库
- 26. 将Excel电子表格导入现有的MS Access表格
- 27. 在Excel(2010)电子表格中填充SQL Server数据
- 28. 从excel电子表格中输入数据到数据库中?
- 29. 将Excel电子表格数据导入包含VBA的另一个Excel电子表格
- 30. 将XML导入到SQL Server数据库
它没有给我一个选择导入到现有的表,只是数据库,它会创建一个新表。 (SQLServer 2008) – user47206 2008-12-17 21:04:56
找到如何工作。谢谢。现在我发现了一个更大的proplem。我正在使用Management Studio 2008,数据库是2000.我错误地认为它是2005. – user47206 2008-12-18 16:09:40
我还没有使用过管理工作室2008(我们正在运行2005)。管理工作室2005是向下兼容2000. – NYSystemsAnalyst 2008-12-18 21:37:59