将数据从Excel移动到SQL Server表

9

我有一个非常简单的Excel表格:

enter image description here

我想把这些数据放入SQL Server中的表格中。我还想添加一个包含日期的字段。

最好的方法是什么?


2
进入SQL Server Management Studio。右键单击要创建表的数据库,点击“任务-->导入数据”,然后使用导入向导。 - Gordon Linoff
1
您应该将其作为答案,以便我可以接受它。 - jth41
1
一个奇怪的评论,因为你已经接受了别人的答案。 - Gordon Linoff
1
我先阅读并评论了你的评论,然后再阅读其他答案。 - jth41
6个回答

10
使用SQL Server创建一个与电子表格中拥有的字段数量相同的表格。在SQL Server Management Studio对象资源管理器中,您可以右键单击创建的表格并选择“编辑前200行”。在Excel中突出显示要复制的数据,然后右键单击-> 复制。在SSMS编辑表格窗口中第一行左侧的空格处右键单击并粘贴。
导入后,请检查SQL表格以确保其具有与电子表格相同的行数。
您可以在数据导入后将日期列添加到SQL表格中。或者在导入之前在电子表格中添加它。

无法让导入向导正常工作,但这个方法非常有效! - Brian Knoblauch

6
您可以首先在SQL Server中创建带有新字段的表,然后使用Management Studio中的导入向导导入Excel文件。或者在导入任务期间创建表,并稍后添加新字段。

2
只是为了补充一下,第二个句子可以通过右键单击数据库 -> 任务 -> 导入数据... 来完成。在这里,您可以选择一个Excel文档,SSMS将根据您电子表格中的数据智能地推导出数据类型。例如,如果Excel中的列是“货币”类型,则会创建“Money”类型的列。 - btm86042

2

选项1:

读取IDataReader中的数据,然后调用存储过程将数据插入。

http://granadacoder.wordpress.com/2009/01/27/bulk-insert-example-using-an-idatareader-to-strong-dataset-to-sql-server-xml/

当我有很多行要导入并且想在数据库之外验证它们时,我使用上述方法。

选项2:

http://support.microsoft.com/kb/321686

或搜索:

Select  FROM OPENDATASOURCE Excel

选项N:

还有其他选择。

这取决于你喜欢什么,你想花多少时间去做,是一次性的还是每天都要处理333个文件。


1
我的解决方案是将 .xlsx 文件转换为 .csv 文件,然后使用 this site 将 .csv 文件转换为 .sql 文件。接着在 SQL Server 中运行该 .sql 文件并生成表格。

这对我有用。将我的xlsx文件转换为csv并使用转换器。在网站上玩弄设置花了一些时间,但不超过10-15分钟。谢谢! - Shane Sepac

0

也可以通过创建批处理文件来完成。

为此,您需要在服务器上创建一个与Excel中具有相同数据结构的表。

现在,使用BCP工具,您可以从Excel文件中导入数据并将其插入到SQL表中。

BCP实用程序功能

sqlcmd -S IP -d databasename -U username -P passwd -Q "SQL query mostly it should be truncate query to truncate the created table"
bcp databasename.dbo.tablename in "Excel file path from where you need to input the data" -c -t, -S Server_IP -U Username -P passwd -b provide batch size

您可以参考下面的链接,了解有关bcp实用程序的更多选项:

https://msdn.microsoft.com/en-IN/library/ms162802.aspx


-2

打开你的SQL服务器接口软件,将日期字段添加到表中。

进入Excel,添加日期列,复制Excel数据。

回到SQL服务器接口软件,使用从剪贴板导入数据的功能。(具有此功能的SQL服务器接口软件例如Database4.net,但如果您有另一个具有此功能的软件包,则可以使用该软件包。)


或者使用VBA与DOA或ADO交互,与SQL服务器数据库进行交互,并使用SQL语句将字段添加到表中并复制数据


我没有给你负评,但我猜测原因是你的回答过于模糊,缺乏实用性:可以总结为“找一个能导入数据并使用它的工具”。"SQL服务器接口软件"是什么意思?"Database4"是什么?你说要“使用功能导入数据”,但是具体指哪个功能呢? - Pondlife
啊,可能就是这样。我并不清楚你是否有 SQL Server Management Studio,所以我保持了相当通用的说法。 - K_B
又有一个踩票,显然人们认为它比我认为的更模糊。虽然我认为它与被接受的答案非常相似。 - K_B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接