将数据从Excel移动到SQL Server表

时间:2013-04-17 13:12:56

标签: sql sql-server excel date

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

enter image description here

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

这样做的最佳方式是什么?

6 个答案:

答案 0 :(得分:10)

在SQL Server中创建一个表,其中包含与电子表格中相同的字段数。

在SQL Server Management Studio对象资源管理器中,您可以右键单击您创建的表,然后选择“编辑前200行”。在Excel中突出显示要复制的数据,然后右键单击 - >复制。右键单击SSMS编辑tabe widow中第一行左侧的空格并粘贴。

导入后检查SQL表以确保它与电子表格具有相同的行数。

执行数据导入后,可以将日期列添加到SQL表中。或者在导入之前将其添加到电子表格中。

答案 1 :(得分:6)

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

答案 2 :(得分: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个文件做。

答案 3 :(得分:1)

我的解决方案是将.xlsx转换为.csv,然后使用this site将.csv转换为.sql。然后我在sql server中运行了sql文件并生成了我的表。

答案 4 :(得分: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

答案 5 :(得分:-2)

打开SQL Server界面软件,将日期字段添加到表中。

转到Excel,添加日期列,复制Excel数据。

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


或者使用带有DOA或ADO的VBA与SQL Server数据库交互,并使用SQL语句添加字段并将数据复制到表中