如何将Excel表导入现有的SQL SEVER数据表里面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将Excel表导入现有的SQL SEVER数据表里面相关的知识,希望对你有一定的参考价值。
1、首先进入到sqlserver应用程序的操作页面中,鼠标右键单击想要放入Excel表格的数据库。
2、接下来需要点击任务,再点击任务中的导入数据选项,
3、接下来就会出现如下方图片长的页面,点击进行下一步。
4、接下来就需要在新出现的界面中,根据要求选择数据源 Excel,文件路径,以及Excel版本,进行下一步。
5、然后是目标数据库。选择“ msslserver”作为目标,无需更改服务器名称,输入对应的密码进行认证,选择对应的数据库作为数据库,最后单击“下一步”,如图所示。
6、所示界面中的默认选项就足够了。点击下一步。
7、图形界面,可以自定义目标数据库(该表可能不存在于数据库中),
8、单击预览以查看导入后的表状态,如图所示。
9、接下来在新出现的页面中,进行下一步。
10、最后,单击“完成”以成功导入。
工具/材料:Management Studio、Excel文件。
1、首先在桌面上,点击“Management Studio”图标。
2、之后在该界面中,选中要导入的现有数据库选项。
3、接着在该界面中,右键点击“任务”里“导入数据”选项。
4、然后在该界面中,选中Excel表文件,点击“打开”按钮。
5、然后在该界面中,选择“复制一个或多个表或试图的数据”选项。
6、然后在该界面中,点击“下一步”按钮。
7、之后在该界面中,勾选“立即运行”选项。
8、接着在该界面中,点击“完成”按钮。
9、最后在该界面中,显示Excel表导入现有的SQL SEVER数据表成功。
1、首先准备好Excel表,希望把它导入到SQL Server2012中的QearlTest数据库中。
2、找到QearlTest数据库,然后右键在下拉菜单中找到 “task"中的“import data。
3、在这里要配置好数据来源,数据来自一个Excel表格,所以选择Microsoft Excel 选项,当选定之后,只需要找到事先保存的Excel文件位置,然后点击下一步。
4、选择要导入的目标数据库,要导入的是QearlTest这个数据库中,然后点击下一步。
5、这里选择直接复制这个Excel表,然后连续点击3次下一步。
6、最后点击完成,会看到一个数据导入成功的界面。
7、回到QearlTest这个数据库,去检验是否成功导入了这个表中的10条数据,就完成了。
下一步骤,选择需要导入到的数据库,下一步,选择从数据库复制表和视图.
下一步骤,选择EXCEL中的表和SQLSERVER中的表,点转换按扭进行两表字段关系对应,
最后点一下步完成即可. 参考技术D 导入方法有多种,可以使用OpenDataSource,来导入。
以下是我在用的方法。
SELECT * into #temp FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=d:\upload_excel\test.xls;User ID=;Password=;Extended properties=Excel 5.0')...sheet1$
以上代码完成将d:\upload_excel\test.xls,追加到临时表temp中。
如果你要追加到其他表里,使用
insert into ta (col1,col2,col3) values
SELECT (col1,col2,col3) FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=d:\upload_excel\test.xls;User ID=;Password=;Extended properties=Excel 5.0')...sheet1$
sheet1$是工作表名称,后面需加上$
以上代码是我正在使用的,放在页面前台页面里,test.xks做为变量,将数据表导入数据库中。本回答被提问者采纳
将 Excel 电子表格数据导入现有的 sql 表?
【中文标题】将 Excel 电子表格数据导入现有的 sql 表?【英文标题】:Import Excel Spreadsheet Data to an EXISTING sql table? 【发布时间】:2013-12-03 19:32:58 【问题描述】:我有一个名为 tblAccounts 的表,其内容将来自 Excel 电子表格。
我在 Windows 8.1 (x64) 上使用 MS SQL Server 2008 (x64)
我尝试使用 SQL Server 导入/导出向导,但没有选择现有表的选项,只有创建新表的选项。
我尝试使用其他方法,例如 OPENROWSETS
INSERT INTO tblAccount SELECT * FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0',
'Excel 12.0;Database=D:\exceloutp.xls','SELECT * FROM [Sheet1$]')
但给了我一个错误:
消息 7308,第 16 级,状态 1,第 1 行 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”不能用于分布式查询,因为该提供程序配置为在单线程单元模式下运行。
一些研究告诉我,这是由于 SQL Server 的 64 位实例而发生的。
问题在于,必须仅使用 SQL 导入/导出向导来完成向 SQL 表的 Excel 数据传输。
如何在不创建新 SQL 表的情况下将 Excel 电子表格导入现有 SQL 表?
我访问了一些链接,但无法帮助我解决问题:
How do I import an excel spreadsheet into SQL Server? Fix OLE DB error【问题讨论】:
为什么不导入一个新的临时表,然后“选择”你想要的实际表? 我非常喜欢 Brennan 先生的建议,但我们只能使用 SQL Server 导入/导出向导。是否可以通过上述向导?谢谢! 我已经使用bcp Utility
msdn.microsoft.com/en-us/library/ms162802.aspx 做了同样的事情,但我从未尝试导入/导出 excel 文件。你可以检查一下。
【参考方案1】:
您可以通过这样做将数据从 excel-sheet 复制粘贴到 SQL 表中:
在 Excel 中选择数据并按 Ctrl + C 在 SQL Server Management Studio 中,右键单击表并选择编辑前 200 行 滚动到底部并通过单击行标题选择整个空行 按 Ctrl + V 粘贴数据注意:通常表的第一列是 ID 列,具有自动生成/递增的 ID。当您粘贴数据时,它将开始将 Excel 中最左侧的选定列插入 SSMS 中的最左侧列,从而将数据插入 ID 列。为了避免这种情况,请在选择的最左侧保留一个空列,以便在 SSMS 中跳过该列。这将导致 SSMS 插入默认数据,即自动生成的 ID。
此外,您可以通过在 Excel 工作表选择中与要跳过的那些列相同的序号位置设置空列来跳过其他列。这将使 SSMS 插入默认值(或未指定默认值的 NULL)。
【讨论】:
这不是很快,但它确实有效,在一个 8 列的表中加载 24,968 行 5 列需要 15 或 20 分钟。 我相信选择中的空列应该是最左边的,以匹配 ID 列在 SSMS 中最左边的位置。 请注意,如果您有错误(例如,如果您没有在复制的数据中留下空列并尝试将其输入到带有 ID 列的表中),您将拥有在错误消息上单击“确定”的次数与复制数据中的行数相同。无法取消。 对于非常少的数据,这是一个不错的选择,但如果数据更多,导入是更快的方法。【参考方案2】:Saudate,我在寻找不同的问题时遇到了这个问题。您绝对可以使用 Sql Server 导入向导将数据导入新表。当然,您不希望将该表留在数据库中,所以我的建议是您导入到一个新表中,然后在查询管理器中编写脚本以将数据插入到现有表中。您可以添加一行来删除导入向导创建的临时表,作为脚本成功完成后的最后一步。
我相信您最初的问题实际上与 Sql Server 64 位有关,并且是由于您拥有 32 位 Excel 并且这些驱动程序不能很好地配合使用。第一次使用 64 位 excel 时,我确实遇到了一个非常相似的问题。
【讨论】:
谢谢!我能够使用导入向导将我的 Excel 文件传输到我的表中。我只是没有看到选择表格的选项,但确实有。我还使用了逗号分隔文件并创建了一个临时表作为解决方法!谢谢!【参考方案3】:如果您想要一个软件工具来执行此操作,您可能想查看此分步指南:
“如何验证 Excel 电子表格并将其导入 SQL Server 数据库”
http://leansoftware.net/forum/en-us/help/excel-database-tasks/worked-examples/how-to-import-excel-spreadsheet-to-sql-server-data.aspx
【讨论】:
【参考方案4】:您可以通过向导使用导入数据,并在那里您可以选择目标表。
运行向导。在选择源表和视图窗口中,您会看到两个部分。来源和目的地。
单击目标部分下的字段以打开下拉列表并选择您的目标表并根据需要编辑其映射。
编辑
仅仅输入表的名称是行不通的。似乎表的名称必须包含模式 (dbo
) 和可能的括号。请注意文本字段右侧的下拉菜单。
【讨论】:
如果您的导入文件与现有表的名称匹配,则导入向导将自动建议将数据修改到现有表而不是创建新表。 这绝对是答案,应该是勾选的。只需使用下拉菜单并选择您需要的表格,再简单不过了。以上是关于如何将Excel表导入现有的SQL SEVER数据表里面的主要内容,如果未能解决你的问题,请参考以下文章
Iphone 编程 - 将现有的 sql 表导入到 sqlite 或核心数据
如何把TXT文件中的数据批量导入SQL sever 2000中?